STORAGE_PROTOCOL_SPECIFIC_DATA 结构 (winioctl.h)
描述在 IOCTL_STORAGE_QUERY_PROPERTY 请求的输入和输出缓冲区中提供的特定于协议的设备数据。
语法
typedef struct _STORAGE_PROTOCOL_SPECIFIC_DATA {
STORAGE_PROTOCOL_TYPE ProtocolType;
DWORD DataType;
DWORD ProtocolDataRequestValue;
DWORD ProtocolDataRequestSubValue;
DWORD ProtocolDataOffset;
DWORD ProtocolDataLength;
DWORD FixedProtocolReturnData;
DWORD ProtocolDataRequestSubValue2;
DWORD ProtocolDataRequestSubValue3;
DWORD ProtocolDataRequestSubValue4;
} STORAGE_PROTOCOL_SPECIFIC_DATA, *PSTORAGE_PROTOCOL_SPECIFIC_DATA;
成员
ProtocolType
协议类型。 此成员的值在 STORAGE_PROTOCOL_TYPE 枚举中定义。
DataType
协议数据类型。 数据类型在 STORAGE_PROTOCOL_NVME_DATA_TYPE 和 STORAGE_PROTOCOL_ATA_DATA_TYPE 枚举中定义。
ProtocolDataRequestValue
协议数据请求值。
ProtocolDataRequestSubValue
协议数据请求的子值。
ProtocolDataOffset
此结构开头的数据缓冲区的偏移量。 典型值可以是大小 (STORAGE_PROTOCOL_SPECIFIC_DATA) 。
ProtocolDataLength
协议数据的长度。
FixedProtocolReturnData
返回的数据。
ProtocolDataRequestSubValue2
ProtocolDataRequestSubValue3
ProtocolDataRequestSubValue4
注解
使用 IOCTL_STORAGE_QUERY_PROPERTY 检索 STORAGE_PROTOCOL_DATA_DESCRIPTOR中特定于协议的信息时,请按如下所示配置 STORAGE_PROPERTY_QUERY 结构:
- 分配可以包含 STORAGE_PROPERTY_QUERY 和 STORAGE_PROTOCOL_SPECIFIC_DATA 结构的缓冲区。
- 分别将控制器或设备/命名空间请求的 PropertyID 字段设置为 StorageAdapterProtocolSpecificProperty 或 StorageDeviceProtocolSpecificProperty。
- 将 QueryType 字段设置为 PropertyStandardQuery。
- 使用所需的值填充 STORAGE_PROTOCOL_SPECIFIC_DATA 结构。 STORAGE_PROTOCOL_SPECIFIC_DATA 的开头是 STORAGE_PROPERTY_QUERY 的 AdditionalParameters 字段。
- 将 ProtocolType 字段设置为 ProtocolTypeNVMe。
-
将 DataType 字段设置为 STORAGE_PROTOCOL_NVME_DATA_TYPE 定义的枚举值:
- 使用 NVMeDataTypeIdentify 获取标识控制器数据或标识命名空间数据。
- 使用 NVMeDataTypeLogPage 获取日志页(包括 SMART/health 数据)。
- 使用 NVMeDataTypeFeature 获取 NVMe 驱动器的功能。
- 将 ProtocolType 字段设置为 ProtocolTypeAta。
-
将 DataType 字段设置为 由 STORAGE_PROTOCOL_ATA_DATA_TYPE 定义的枚举值:
- 使用 AtaDataTypeIdentify 标识 ATA 驱动器。
- 使用 AtaDataTypeLogPage 从 ATA 驱动器获取日志页。
要求
最低受支持的客户端 | Windows 10 |
最低受支持的服务器 | Windows Server 2016 |
标头 | winioctl.h (包括 Windows.h) |