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
TRUE、デバイスが複数の未処理のコマンド (SCSI タグ付きキューまたは同等の) をサポートしていることを示します。 FALSE 場合、デバイスは SCSI タグ付きキューまたは同等のキューをサポートしていません。 STORPORT ドライバーは、コマンドの同期を担当します。
VendorIdOffset
構造体の先頭から、デバイスのベンダー ID を含む NULL終了 ASCII 文字列へのバイト オフセットを指定します。 デバイスにベンダー ID がない場合、このメンバーは 0 です。
ProductIdOffset
構造体の先頭から、デバイスの製品 ID を含む NULL-terminated ASCII 文字列へのバイト オフセットを指定します。 デバイスに製品 ID がない場合、このメンバーは 0 です。
ProductRevisionOffset
構造体の先頭から、デバイスの製品リビジョン文字列を含む NULL-terminated ASCII 文字列へのバイト オフセットを指定します。 デバイスに製品リビジョン文字列がない場合、このメンバーは 0 です。
SerialNumberOffset
構造体の先頭から、デバイスのシリアル番号を含む NULL-terminated ASCII 文字列へのバイト オフセットを指定します。 デバイスにシリアル番号がない場合、このメンバーは 0 です。
BusType
デバイスが接続されているバスの種類を示す STORAGE_BUS_TYPE 型の列挙子値を指定します。 これは、この構造体の最後にある生のデバイス プロパティを解釈するために使用する必要があります (存在する場合)。
RawPropertiesLength
この記述子に追加されたバス固有データのバイト数を示します。
RawDeviceProperties[1]
バス固有のプロパティ データの最初のバイトのプレース ホルダーとして機能する長さ 1 の配列を格納します。
備考
アプリケーションおよびストレージ クラス ドライバーは、ターゲット デバイスに関する情報を含むこの構造体を取得するために、I/O コントロール コード IOCTL_STORAGE_QUERY_PROPERTY でデバイス制御要求を発行します。 構造体は FDO からのみ取得できます。アダプターからデバイス プロパティを取得しようとすると、エラーが発生します。
アプリケーションまたはドライバーは、取得した STORAGE_DEVICE_DESCRIPTOR 構造体を STORAGE_DESCRIPTOR_HEADERにキャストすることで、必要なバッファー サイズを決定できます。この構造体には、バージョン と サイズのみが含まれます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntddstor.h (Ntddstor.h を含む) |
関連項目
IoBuildDeviceIoControlRequestの