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


структура 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

Общий размер дескриптора в байтах, включая пространство для всех данных протокола. Должно быть =>размер(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.
  • Задайте для поля 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.

Чтобы указать тип сведений о протоколе ATA, настройте структуру STORAGE_PROTOCOL_SPECIFIC_DATA следующим образом:

  • Задайте для поля ProtocolType значение ProtocolTypeAta .
  • Задайте для поля DataType значение перечисления, определенное STORAGE_PROTOCOL_ATA_DATA_TYPE:
    • Используйте ataDataTypeIdentify для идентификации диска ATA.
    • Используйте AtaDataTypeLogPage для получения страниц журналов с диска ATA.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10
минимальный поддерживаемый сервер Windows Server 2016
заголовка ntddstor.h (include 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