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