STORAGE_PROTOCOL_NVME_DATA_TYPE 枚举 (ntddstor.h)

描述在 IOCTL_STORAGE_QUERY_PROPERTY 请求期间要查询的特定于 NVMe 协议的数据的类型。

语法

typedef enum _STORAGE_PROTOCOL_NVME_DATA_TYPE {
  NVMeDataTypeUnknown,
  NVMeDataTypeIdentify,
  NVMeDataTypeLogPage,
  NVMeDataTypeFeature,
  NVMeDataTypeLogPageEx,
  NVMeDataTypeFeatureEx
} STORAGE_PROTOCOL_NVME_DATA_TYPE, *PSTORAGE_PROTOCOL_NVME_DATA_TYPE;

常量

 
NVMeDataTypeUnknown
未知的数据类型。
NVMeDataTypeIdentify
获取标识数据,可以是标识控制器数据或标识命名空间数据。

查询此类数据时, STORAGE_PROTOCOL_SPECIFIC_DATA 结构中的字段应具有以下值:

- 将针对适配器NVME_IDENTIFY_CNS_CONTROLLERProtocolDataRequestValue,或为命名空间NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE
- 如果 ProtocolDataRequestValueNVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE,则 ProtocolDataRequestSubValue 字段指定命名空间 ID。 (请注意,当前不支持 NVME_IDENTIFY_CNS_ACTIVE_NAMESPACES 。)
NVMeDataTypeLogPage
获取 NVMe 日志页。

查询此类数据时, STORAGE_PROTOCOL_SPECIFIC_DATA 结构中的字段应具有以下值:

- ProtocolDataRequestValue 是要检索的日志页的标识符。
- ProtocolDataRequestSubValue 是日志页中从中开始返回数据的偏移量的较低 32 位值。
- ProtocolDataRequestSubValue2 是日志页中从中开始返回数据的偏移量的 32 位上限值。
- ProtocolDataRequestSubValue3 是特定日志页所需的特定于日志的标识符。
- ProtocolDataRequestSubValue4 是一种 STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE 结构,允许在获取日志页时指定其他信息。
NVMeDataTypeFeature
按命令检索 - GET FEATURES 或 SET FEATURES

STORAGE_PROTOCOL_SPECIFIC_DATA中的相应值 (获取) 或STORAGE_PROTOCOL_SPECIFIC_DATA_EXT (设置) :

- ProtocolDataRequestValue - 在 NVME_CDW10_GET_FEATURES/ NVME_CDW10_SET_FEATURES 中定义
- ProtocolDataRequestSubValue - 在 NVME_CDW11_FEATURES 中定义
- ProtocolDataRequestSubValue2 - 在 NVME_CDW12_FEATURES 中定义
- ProtocolDataRequestSubValue3 - 在 NVME_CDW13_FEATURES 中定义
- ProtocolDataRequestSubValue4 - 在 NVME_CDW14_FEATURES 中定义
- ProtocolDataRequestSubValue5 - 在 NVME_CDW15_FEATURES 中定义
NVMeDataTypeLogPageEx
通过命令检索 - GET LOG 页面

查询此类数据时, STORAGE_PROTOCOL_SPECIFIC_DATA_EXT 结构中的字段应具有以下值:

- ProtocolDataValue - 在 NVME_CDW10_GET_LOG_PAGE 中定义
- ProtocolDataSubValue - 在 NVME_CDW11_GET_LOG_PAGE 中定义
- ProtocolDataSubValue2 - 在 NVME_CDW12_GET_LOG_PAGE 中定义
- ProtocolDataSubValue3 - 在 NVME_CDW13_GET_LOG_PAGE 中定义
- ProtocolDataSubValue4 - 在 NVME_CDW14_GET_LOG_PAGE 中定义
- ProtocolDataSubValue5 - 在当前未使用的NVME_CDW15_GET_LOG_PAGE (中定义)
- ProtocolDataSubValue6 - 命名空间 ID
NVMeDataTypeFeatureEx
按命令检索 - GET FEATURES 或 SET FEATURES

查询此类数据时, STORAGE_PROTOCOL_SPECIFIC_DATA_EXT 结构中的字段应具有以下值:

- ProtocolDataValue - 在 NVME_CDW10_GET_FEATURES/NVME_CDW10_SET_FEATURES 中定义
- ProtocolDataSubValue - 在 NVME_CDW11_FEATURES 中定义
- ProtocolDataSubValue2 - 在 NVME_CDW12_FEATURES 中定义
- ProtocolDataSubValue3 - 在 NVME_CDW13_FEATURES 中定义
- ProtocolDataSubValue4 - 在 NVME_CDW14_FEATURES 中定义
- ProtocolDataSubValue5 - 在 NVME_CDW15_FEATURES 中定义
- ProtocolDataSubValue6 - 命名空间 ID

注解

使用 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_QUERY 的 AdditionalParameters 字段。

若要指定特定于 NVMe 协议的信息类型,请配置 STORAGE_PROTOCOL_SPECIFIC_DATA 结构,如下所示:

  • 将 ProtocolType 字段设置为 ProtocolTypeNVMe。

  • 将 DataType 字段设置为 STORAGE_PROTOCOL_NVME_DATA_TYPE 定义的枚举值:

    • 使用 NVMeDataTypeIdentify 获取标识控制器数据或标识命名空间数据。
    • 使用 NVMeDataTypeLogPage 获取日志页(包括 SMART/health 数据)。
    • 使用 NVMeDataTypeFeature 获取 NVMe 驱动器的功能。
    • 使用 NVMeDataTypeLogPageEx 获取日志页, (包括使用扩展格式的 SMART/health 数据) 。
    • 使用 NVMeDataTypeFeatureEx 获取使用扩展格式的 NVMe 驱动器的功能。

要求

要求
最低受支持的客户端 Windows 10
最低受支持的服务器 Windows Server 2016
标头 ntddstor.h (包括 Ntddstor.h)

另请参阅