STORAGE_PROTOCOL_DATA_DESCRIPTOR 结构 (ntddstor.h)

此结构与 IOCTL_STORAGE_SET_PROPERTYIOCTL_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_QUERYSTORAGE_PROTOCOL_SPECIFIC_DATA 结构的缓冲区。
  • 分别将控制器或设备/命名空间请求的 PropertyID 字段设置为 StorageAdapterProtocolSpecificProperty 或 StorageDeviceProtocolSpecificProperty。
  • 将 QueryType 字段设置为 PropertyStandardQuery。
  • 使用所需的值填充 STORAGE_PROTOCOL_SPECIFIC_DATA 结构。 STORAGE_PROTOCOL_SPECIFIC_DATA的开头是 STORAGE_PROPERTY_QUERYAdditionalParameters 字段。

若要指定特定于 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)

另请参阅

IOCTL_STORAGE_QUERY_PROPERTY

IOCTL_STORAGE_SET_PROPERTY

STORAGE_PROPERTY_ID

STORAGE_PROPERTY_QUERY

STORAGE_PROTOCOL_SPECIFIC_DATA

STORAGE_PROTOCOL_SPECIFIC_DATA_EXT