次の方法で共有


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 クラス ドライバーに戻る前に返されたバイト数に設定します。

必要条件

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

関連項目

CHANGER_ELEMENT

CHANGER_ELEMENT_LIST

CHANGER_ELEMENT_STATUS

CHANGER_ELEMENT_STATUS_EX

CHANGER_READ_ELEMENT STATUS

ChangerGetStatus

ChangerInitializeElementStatus

ChangerQueryVolumeTags

IOCTL_CHANGER_GET_ELEMENT_STATUS