次の方法で共有


IOCTL_STORAGE_QUERY_PROPERTY IOCTL (ntddstor.h)

ドライバーは、IOCTL_STORAGE_QUERY_PROPERTY を使用して、ストレージ デバイスまたはアダプターのプロパティを返すことができます。 要求は、取得する情報の種類 (デバイスの照会データ、アダプターの機能、制限など) を示します。 IOCTL_STORAGE_QUERY_PROPERTY を使用して、ポート ドライバーが特定のプロパティをサポートしているかどうか、または後続の change-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に設定されます。

必要条件

要件 価値
ヘッダー ntddstor.h (Ntddstor.h を含む)

関連項目

STORAGE_DESCRIPTOR_HEADER

STORAGE_PROPERTY_QUERY

STORAGE_RPMB_DATA_FRAME