Поделиться через


перечисление STORAGE_PROTOCOL_NVME_DATA_TYPE (ntddstor.h)

Описывает тип данных, относящихся к протоколу NVMe, которые должны запрашиваться во время запроса IOCTL_STORAGE_QUERY_PROPERTY .

Синтаксис

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 должны иметь следующие значения:

- Значение ProtocolDataRequestValue будет NVME_IDENTIFY_CNS_CONTROLLER для адаптера или NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE для пространства имен.
— Если значение ProtocolDataRequestValueNVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE, в поле ProtocolDataRequestSubValue указывается идентификатор пространства имен. (Обратите внимание, что 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 (get) или STORAGE_PROTOCOL_SPECIFIC_DATA_EXT (set):

- 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 PAGE

При запросе данных этого типа поля в структуре 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 — идентификатор пространства имен.
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 — идентификатор пространства имен.

Комментарии

При использовании 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 — это поле AdditionalParametersSTORAGE_PROPERTY_QUERY.

Чтобы указать тип сведений, относящихся к протоколу 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)

См. также раздел