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) に設定します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | mcd.h (Mcd.h、Ntddchgr.h を含む) |
IRQL | PASSIVE_LEVEL |