структура 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
Смещение буфера данных от начала этой структуры. Типичным значением может быть sizeof(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 — это поле AdditionalParametersSTORAGE_PROPERTY_QUERY.
- Задайте для поля 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) |