IOCTL_STORAGE_QUERY_PROPERTY IOCTL (ntddstor.h)

ドライバーは、 IOCTL_STORAGE_QUERY_PROPERTY を使用して、ストレージ デバイスまたはアダプターのプロパティを返すことができます。 要求は、デバイスの照会データやアダプターの機能や制限など、取得する情報の種類を示します。 IOCTL_STORAGE_QUERY_PROPERTY を使用して、ポート ドライバーが特定のプロパティをサポートしているか、プロパティ記述子のどのフィールドを後続の変更プロパティ要求で変更できるかを判断することもできます。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

Parameters.DeviceIoControl.InputBufferLength は、Irp-AssociatedIrp.SystemBuffer> のパラメーター バッファーのサイズ (バイト単位) を示します。これは sizeof(STORAGE_PROPERTY_QUERY) である必要があります>。

Irp->AssociatedIrp.SystemBuffer には デバイスまたはアダプターのどちらにクエリを実行するか、実行するクエリの種類、およびクエリに必要な追加パラメーター (特定の SCSI モード 検出ページのページ コードなど) を指定するSTORAGE_PROPERTY_QUERY データが含まれています。 デバイスのプロパティは、デバイスからのみ取得する必要があります。アダプターからデバイスのプロパティを取得しようとすると、エラーが発生します。

Parameters.DeviceIoControl.OutputBufferLengthは、Irp-AssociatedIrp.SystemBuffer> に書き込むことができるバイト数を示します。 OutputBufferLength を 0 にして、データを取得せずにプロパティが存在するかどうかを判断できます。

入力バッファーの長さ

Parameters.DeviceIoControl.InputBufferLength は、Irp-AssociatedIrp.SystemBuffer> のパラメーター バッファーのサイズ (バイト単位) を示します。これは sizeof(STORAGE_PROPERTY_QUERY) である必要があります>。

出力バッファー

ドライバーは、Irp-AssociatedIrp.SystemBuffer> のバッファーにクエリ データを返します。 さまざまな量のバス固有のデータを構造体に追加できます。

出力バッファーの長さ

返された構造体を STORAGE_DESCRIPTOR_HEADER にキャストし、その Size メンバーを確認して、構造体が実際に必要とするバイト数を判断します。

ステータス ブロック

[情報] フィールドは、返されるバイト数に設定されます。 [状態] フィールドはSTATUS_SUCCESSに設定され、場合によってはSTATUS_INVALID_DEVICE_REQUEST、STATUS_INVALID_PARAMETER、またはSTATUS_NOT_SUPPORTEDに設定されます。

要件

   
Header ntddstor.h (Ntddstor.h を含む)

こちらもご覧ください

STORAGE_DESCRIPTOR_HEADER

STORAGE_PROPERTY_QUERY

STORAGE_RPMB_DATA_FRAME