次の方法で共有


ChangerMoveMedium 関数 (mcd.h)

ChangerMoveMedium は、IOCTL コード IOCTL_CHANGER_MOVE_MEDIUMを使用して、デバイスコントロール IRP のデバイス固有の側面を処理します。

構文

NTSTATUS ChangerMoveMedium(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] PIRP           Irp
);

パラメーター

[in] DeviceObject

チェンジャーを表すデバイス オブジェクトへのポインター。

[in] Irp

IRP へのポインター。

戻り値

ChangerMoveMedium は、システム ポート ドライバーによって返された状態、または次のいずれかの値を返します。

STATUS_SUCCESS

STATUS_DESTINATION_ELEMENT_FULL

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_INVALID_DEVICE_REQUEST

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

STATUS_SOURCE_ELEMENT_EMPTY

備考

このルーチンは必須です。

ChangerMoveMedium 、ある要素から別の要素にメディアの一部を移動します。

changer クラス ドライバーは、ChangerMoveMediumを呼び出す前に、I/O スタックの場所で入力バッファーの長さを確認します。 Irp->SystemBuffer は、トランスポート要素、ソース、宛先、およびメディアを反転するかどうかを示す CHANGER_MOVE_MEDIUM 構造体を指します。

ChangerMoveMedium 最初にトランスポート、ソース、および宛先の要素のアドレスが有効であることを確認してから、0 から始まる要素のアドレスをデバイス固有のアドレスに変換します。 次に、CDB を使用して SRB をビルドしてメディアの一部を移動し、システム ポート ドライバーに送信します。

ChangerMoveMedium 、changer クラス ドライバーに戻る前に、I/O 状態ブロックの Information フィールドを sizeof(CHANGER_MOVE_MEDIUM) に設定します。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー mcd.h (Mcd.h、Ntddchgr.h を含む)
IRQL PASSIVE_LEVEL

関連項目

CHANGER_ELEMENT

CHANGER_MOVE_MEDIUM

ChangerExchangeMedium