ChangerGetElementStatus 関数 (mcd.h)
ChangerGetElementStatus は、IOCTL コード IOCTL_CHANGER_GET_ELEMENT_STATUSを使用して、デバイス制御 IRP のデバイス固有の側面を処理します。
構文
NTSTATUS ChangerGetElementStatus(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
パラメーター
[in] DeviceObject
チェンジャーを表すデバイス オブジェクトへのポインター。
[in] Irp
IRP へのポインター。
戻り値
ChangerGetElementStatus は、システム ポート ドライバーまたは次のいずれかの値によって返される状態を返します。
STATUS_SUCCESS
STATUS_INFO_LENGTH_MISMATCH
STATUS_INSUFFICIENT_RESOURCES
STATUS_INVALID_DEVICE_REQUEST
STATUS_INVALID_ELEMENT_ADDRESS
ボリューム タグ情報をサポートしていないチェンジャーに VolumeTagInfo が設定されている場合、ChangerGetElementStatus はSTATUS_INVALID_PARAMETERを返します。
注釈
このルーチンは必須です。
ChangerGetElementStatus は、状態と、必要に応じて、チェンジャー内のすべての要素のボリューム タグ情報、または特定の型の特定の数の要素の状態を返します。
changer クラス ドライバーは、 ChangerGetElementStatus を呼び出す前に、I/O スタックの場所で入力バッファーと出力バッファーの長さを確認します。
Irp-SystemBuffer> は、状態を報告する要素と、ボリューム タグ情報を報告するかどうかを示す入力パラメーターとして、CHANGER_READ_ELEMENT_STATUS構造体を指します。
ChangerGetElementStatus は、まず CDB を使用して SRB をビルドして要素の状態コマンドを読み取り、それをシステム ポート ドライバーに送信して、チェンジャーの要素の状態を取得します。 ほとんどの要素型の場合、ChangerGetElementStatus は、状態を報告する要素ごとに、Irp-AssociatedIrp.SystemBuffer> のCHANGER_ELEMENT_STATUS構造体を入力します。 ただし、 ChangerDrive 型の一部の要素では、製品情報データが返されます。 デバイスが製品情報を提供する場合、ミニクラス ドライバーは、CHANGER_ELEMENT_STATUSを使用する代わりに CHANGER_ELEMENT_STATUS_EX 型の構造体で要素の状態データを報告する必要があります。 ChangerGetElementStatus は、構造体の Flags メンバーに ELEMENT_STATUS_PRODUCT_DATAを設定することによって、製品情報が存在することを示す必要があります。
ChangerGetElementStatus は、I/O 状態ブロックの Information フィールドを、changer クラス ドライバーに戻る前に返されたバイト数に設定します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | mcd.h (Mcd.h、Ntddchgr.h を含む) |
IRQL | PASSIVE_LEVEL |