ChangerSetPosition 関数 (mcd.h)
ChangerSetPosition は、IOCTL コード IOCTL_CHANGER_SET_POSITIONを使用して、デバイスコントロール IRP のデバイス固有の側面を処理します。
構文
NTSTATUS ChangerSetPosition(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
パラメーター
[in] DeviceObject
チェンジャーを表すデバイス オブジェクトへのポインター。
[in] Irp
IRP へのポインター。
戻り値
changer がトランスポート要素の位置の設定をサポートしている場合、 ChangerSetPosition は、システム ポート ドライバーによって返される状態、または次のいずれかの値を返します。
STATUS_SUCCESS
STATUS_INFO_LENGTH_MISMATCH
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
changer がトランスポート要素の位置の設定をサポートしていない場合、ChangerSetPosition はSTATUS_INVALID_DEVICE_REQUESTを返します。
注釈
このルーチンは必須です。
ChangerSetPosition は 、チェンジャーのロボットトランスポート機構を指定された宛先に設定します。通常は、最初にトランスポートを配置することによってメディアの移動または交換を最適化します。
GET_CHANGER_PARAMETERS の Features0 の CHANGER_POSITION_TO_ELEMENT フラグは、チェンジャーがこの機能をサポートしているかどうかを示します。
changer クラス ドライバーは、 ChangerSetPosition を呼び出す前に、I/O スタックの場所で入力バッファーの長さを確認します。 Irp-SystemBuffer> は、トランスポート要素と設定する宛先を示す入力パラメーターとして、CHANGER_SET_POSITION構造体を指します。
ChangerSetPosition は、最初にトランスポート要素アドレスと宛先要素アドレスが有効であることを確認し、0 から始まる要素アドレスをデバイス固有のアドレスに変換します。 次に、CDB を使用して SRB をビルドして 要素を配置し、システム ポート ドライバーに送信します。
ChangerSetPosition は、Changer クラス ドライバーに戻る前に、I/O 状態ブロックの Information フィールドを sizeof(CHANGER_SET_POSITION) に設定します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | mcd.h (Mcd.h、Ntddchgr.h を含む) |
IRQL | PASSIVE_LEVEL |