次の方法で共有


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 の Features0CHANGER_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

こちらもご覧ください

、IOCTL_CHANGER_SET_POSITION

CHANGER_ELEMENT

CHANGER_SET_POSITION