STORAGE_DEVICE_DESCRIPTOR結構 (winioctl.h)
與 IOCTL_STORAGE_QUERY_PROPERTY 控件程式代碼搭配使用,以擷取裝置的記憶體裝置描述元數據。
語法
typedef struct _STORAGE_DEVICE_DESCRIPTOR {
DWORD Version;
DWORD Size;
BYTE DeviceType;
BYTE DeviceTypeModifier;
BOOLEAN RemovableMedia;
BOOLEAN CommandQueueing;
DWORD VendorIdOffset;
DWORD ProductIdOffset;
DWORD ProductRevisionOffset;
DWORD SerialNumberOffset;
STORAGE_BUS_TYPE BusType;
DWORD RawPropertiesLength;
BYTE RawDeviceProperties[1];
} STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR;
成員
Version
包含這個 結構的大小,以位元組為單位。 當成員加入至 結構時,這個成員的值將會變更。
Size
指定描述項的大小總計,以位元組為單位,其中可能包含廠商標識碼、產品標識碼、產品修訂、裝置序號字串,以及附加至 結構的總線特定數據。
DeviceType
指定由 Small Computer Systems Interface (SCSI) 規格所定義的裝置類型。
DeviceTypeModifier
指定裝置類型修飾詞,如果有的話,如 SCSI 規格所定義。 如果沒有裝置類型修飾詞存在,這個成員為零。
RemovableMedia
指出如果有任何可移動) ,裝置的媒體 (為 TRUE 。 如果裝置沒有媒體,則應該忽略此成員。 當 FALSE 時,裝置的媒體不會卸除。
CommandQueueing
指出裝置何時支援多個未處理的命令, (SCSI 標記佇列或對等) 。 當 為 FALSE 時,裝置不支援 SCSI 標記的佇列或對等專案。
VendorIdOffset
指定結構開頭到包含裝置廠商標識碼之 Null 終止 ASCII 字串的位元組位移。 如果裝置沒有廠商標識碼,則此成員為零。
ProductIdOffset
指定結構開頭到包含裝置產品標識碼之 Null 終止 ASCII 字串的位元組位移。 如果裝置沒有產品標識碼,則此成員為零。
ProductRevisionOffset
指定結構開頭到包含裝置產品修訂字串之 Null 終止 ASCII 字串的位元組位移。 如果裝置沒有產品修訂字串,則此成員為零。
SerialNumberOffset
指定結構開頭到包含裝置序號之 Null 終止 ASCII 字串的位元組位移。 如果裝置沒有序號,則此成員為零。
BusType
指定類型 為 STORAGE_BUS_TYPE 的列舉值,指出裝置所連接的總線類型。 這應該在此結構結尾 (如有的話) 用來解譯原始裝置屬性。
RawPropertiesLength
指出已附加至此描述項之總線特定數據的位元元組數目。
RawDeviceProperties[1]
包含長度為一的陣列,做為總線特定屬性數據之第一個字節的佔位元。
備註
應用程式可以發出IOCTL_STORAGE_QUERY_PROPERTY控件程式代碼,為輸出緩衝區傳遞STORAGE_DESCRIPTOR_HEADER結構,然後使用STORAGE_DESCRIPTOR_HEADER結構的傳回 Size 成員來配置適當大小的緩衝區,以判斷所需的緩衝區大小。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
標頭 | winioctl.h (包含 Windows.h) |