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 を含む) |