STORAGE_PROTOCOL_DATA_DESCRIPTOR 結構 (ntddstor.h)
此結構會與 IOCTL_STORAGE_SET_PROPERTY 和 IOCTL_STORAGE_QUERY_PROPERTY 搭配使用,分別從記憶體裝置或配接器設定或查詢通訊協定特定數據。
語法
typedef struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR {
ULONG Version;
ULONG Size;
STORAGE_PROTOCOL_SPECIFIC_DATA ProtocolSpecificData;
} STORAGE_PROTOCOL_DATA_DESCRIPTOR, *PSTORAGE_PROTOCOL_DATA_DESCRIPTOR;
成員
Version
這個結構的版本。 設定為 sizeof (STORAGE_PROTOCOL_DATA_DESCRIPTOR) 。
Size
描述元的位元組大小總計,包括所有通訊協議數據的空間。 必須是 =>sizeof (STORAGE_PROTOCOL_DATA_DESCRIPTOR) 。
ProtocolSpecificData
STORAGE_PROTOCOL_SPECIFIC_DATA類型的通訊協定特定數據。
備註
使用 IOCTL_STORAGE_QUERY_PROPERTY 擷取 STORAGE_PROTOCOL_DATA_DESCRIPTOR 中的通訊協定特定資訊時,請設定 STORAGE_PROPERTY_QUERY 結構,如下所示:
- 配置可同時包含 STORAGE_PROPERTY_QUERY 和 STORAGE_PROTOCOL_SPECIFIC_DATA 結構的緩衝區。
- 分別將 Controller 或裝置/命名空間要求的 PropertyID 字段設定為 StorageAdapterProtocolSpecificProperty 或 StorageDeviceProtocolSpecificProperty 。
- 將 QueryType 字段設定為 PropertyStandardQuery。
- 使用所需的值填入 STORAGE_PROTOCOL_SPECIFIC_DATA 結構。 STORAGE_PROTOCOL_SPECIFIC_DATA的開頭是 STORAGE_PROPERTY_QUERY 的 AdditionalParameters 字段。
若要指定 NVMe 通訊協定特定資訊的類型,請設定 STORAGE_PROTOCOL_SPECIFIC_DATA 結構,如下所示:
- 將 [ProtocolType] 字段設定為 ProtocolTypeNVMe。
- 將 DataType 欄位設定為 STORAGE_PROTOCOL_NVME_DATA_TYPE所定義的列舉值:
- 使用 NVMeDataTypeIdentify 來取得識別控制器數據或識別命名空間數據。
- 使用 NVMeDataTypeLogPage 取得記錄頁面, (包括 SMART/health 數據) 。
- 使用 NVMeDataTypeFeature 來取得 NVMe 磁碟驅動器的功能。
若要指定 ATA 通訊協定特定資訊的類型,請設定 STORAGE_PROTOCOL_SPECIFIC_DATA 結構,如下所示:
- 將 [ProtocolType] 字段設定為 ProtocolTypeAta。
- 將 DataType 欄位設定為 STORAGE_PROTOCOL_ATA_DATA_TYPE所定義的列舉值:
- 使用 AtaDataTypeIdentify 來識別 ATA 磁碟驅動器。
- 使用 AtaDataTypeLogPage 從 ATA 磁碟驅動器取得記錄頁面。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 |
最低支援的伺服器 | Windows Server 2016 |
標頭 | ntddstor.h (包含 Ntddstor.h) |