STORAGE_DEVICE_DESCRIPTOR 構造体 (ntddstor.h)

STORAGE_DEVICE_DESCRIPTOR構造体は、デバイスのストレージ デバイス記述子データを取得するために、IOCTL_STORAGE_QUERY_PROPERTY要求と組み合わせて使用されます。

構文

typedef struct _STORAGE_DEVICE_DESCRIPTOR {
  ULONG            Version;
  ULONG            Size;
  UCHAR            DeviceType;
  UCHAR            DeviceTypeModifier;
  BOOLEAN          RemovableMedia;
  BOOLEAN          CommandQueueing;
  ULONG            VendorIdOffset;
  ULONG            ProductIdOffset;
  ULONG            ProductRevisionOffset;
  ULONG            SerialNumberOffset;
  STORAGE_BUS_TYPE BusType;
  ULONG            RawPropertiesLength;
  UCHAR            RawDeviceProperties[1];
} STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR;

メンバー

Version

STORAGE_DEVICE_DESCRIPTOR構造体のサイズを示します。 メンバーが構造体に追加されると、このメンバーの値が変更されます。

Size

構造体に追加される ID 文字列を含む、記述子の合計サイズをバイト単位で指定します。

DeviceType

Small Computer Systems Interface (SCSI) 仕様で定義されているデバイスの種類を指定します。

DeviceTypeModifier

SCSI 仕様で定義されているように、デバイスの種類修飾子 (存在する場合) を指定します。 デバイスの種類修飾子が存在しない場合、このメンバーは 0 です。

RemovableMedia

デバイスのメディア (存在する場合) がリムーバブルであることを TRUE にする 場合を示します。 デバイスにメディアがない場合は、このメンバーを無視する必要があります。 FALSE の場合、デバイスのメディアはリムーバブルではありません。

CommandQueueing

デバイスが複数の未処理のコマンド (SCSI タグ付きキューまたは同等のもの) をサポートしていることを TRUE に するかどうかを示します。 FALSE の場合、デバイスは SCSI タグ付きキューまたは同等のキューをサポートしません。 STORPORT ドライバーは、コマンドの同期を担当します。

VendorIdOffset

構造体の先頭から、デバイスのベンダー ID を含む NULL で終わる ASCII 文字列へのバイト オフセットを指定します。 デバイスにベンダー ID がない場合、このメンバーは 0 です。

ProductIdOffset

構造体の先頭から、デバイスの製品 ID を含む NULL で終わる ASCII 文字列へのバイト オフセットを指定します。 デバイスに製品 ID がない場合、このメンバーは 0 です。

ProductRevisionOffset

構造体の先頭から、デバイスの製品リビジョン文字列を含む NULL で終わる ASCII 文字列へのバイト オフセットを指定します。 デバイスに製品リビジョン文字列がない場合、このメンバーは 0 です。

SerialNumberOffset

構造体の先頭から、デバイスのシリアル番号を含む NULL で終わる ASCII 文字列へのバイト オフセットを指定します。 デバイスにシリアル番号がない場合、このメンバーは 0 です。

BusType

デバイスが接続されているバスの種類を示す STORAGE_BUS_TYPE 型の列挙子値を指定します。 これは、この構造の最後で生のデバイス プロパティを解釈するために使用する必要があります (ある場合)。

RawPropertiesLength

この記述子に追加されたバス固有データのバイト数を示します。

RawDeviceProperties[1]

バス固有のプロパティ データの最初のバイトのプレース ホルダーとして機能する長さ 1 の配列を格納します。

注釈

アプリケーションおよびストレージ クラス ドライバーは、ターゲット デバイスに関する情報を含むこの構造体を取得するために、I/O 制御コード IOCTL_STORAGE_QUERY_PROPERTY を使用してデバイス制御要求を発行します。 構造体は FDO からのみ取得できます。アダプターからデバイス プロパティを取得しようとすると、エラーが発生します。

アプリケーションまたはドライバーは、取得したSTORAGE_DEVICE_DESCRIPTOR構造体を Version と Size のみを含むSTORAGE_DESCRIPTOR_HEADERにキャストすることで、必要なバッファー サイズを決定できます。

要件

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

こちらもご覧ください

IOCTL_STORAGE_QUERY_PROPERTY

IoBuildDeviceIoControlRequest

STORAGE_ADAPTER_DESCRIPTOR

STORAGE_BUS_TYPE

STORAGE_DESCRIPTOR_HEADER

STORAGE_DEVICE_DESCRIPTOR

STORAGE_DEVICE_ID_DESCRIPTOR