Compartilhar via


estrutura STORAGE_PROTOCOL_SPECIFIC_DATA (winioctl.h)

Descreve dados de dispositivo específicos do protocolo, fornecidos no buffer de entrada e saída de uma solicitação do IOCTL_STORAGE_QUERY_PROPERTY.

Sintaxe

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;

Membros

ProtocolType

O tipo de protocolo. Os valores desse membro são definidos na enumeração STORAGE_PROTOCOL_TYPE .

DataType

O tipo de dados de protocolo. Os tipos de dados são definidos nas enumerações STORAGE_PROTOCOL_NVME_DATA_TYPE e STORAGE_PROTOCOL_ATA_DATA_TYPE .

ProtocolDataRequestValue

O valor da solicitação de dados de protocolo.

ProtocolDataRequestSubValue

O sub-valor da solicitação de dados de protocolo.

ProtocolDataOffset

O deslocamento do buffer de dados que é do início dessa estrutura. O valor típico pode ser sizeof(STORAGE_PROTOCOL_SPECIFIC_DATA).

ProtocolDataLength

O comprimento dos dados do protocolo.

FixedProtocolReturnData

Os dados retornados.

ProtocolDataRequestSubValue2

ProtocolDataRequestSubValue3

ProtocolDataRequestSubValue4

Comentários

Ao usar IOCTL_STORAGE_QUERY_PROPERTY para recuperar informações específicas do protocolo no STORAGE_PROTOCOL_DATA_DESCRIPTOR, configure a estrutura STORAGE_PROPERTY_QUERY da seguinte maneira:

  • Aloque um buffer que possa conter uma estrutura STORAGE_PROPERTY_QUERY e uma STORAGE_PROTOCOL_SPECIFIC_DATA.
  • Defina o campo PropertyID como StorageAdapterProtocolSpecificProperty ou StorageDeviceProtocolSpecificProperty para um controlador ou solicitação de dispositivo/namespace, respectivamente.
  • Defina o campo QueryType como PropertyStandardQuery.
  • Preencha a estrutura STORAGE_PROTOCOL_SPECIFIC_DATA com os valores desejados. O início da STORAGE_PROTOCOL_SPECIFIC_DATA é o campo AdditionalParameters da STORAGE_PROPERTY_QUERY.
Para especificar um tipo de informações específicas do protocolo NVMe, configure a estrutura STORAGE_PROTOCOL_SPECIFIC_DATA da seguinte maneira:
  • Defina o campo ProtocolType como ProtocolTypeNVMe.
  • Defina o campo DataType como um valor de enumeração definido por STORAGE_PROTOCOL_NVME_DATA_TYPE:
    • Use NVMeDataTypeIdentify para obter dados do Controlador de identificação ou dados do Namespace de identificação.
    • Use NVMeDataTypeLogPage para obter páginas de log (incluindo dados INTELIGENTES/integridade).
    • Use NVMeDataTypeFeature para obter recursos da unidade NVMe.
Para especificar um tipo de informações específicas do protocolo ATA, configure a estrutura STORAGE_PROTOCOL_SPECIFIC_DATA da seguinte maneira:
  • Defina o campo ProtocolType como ProtocolTypeAta.
  • Defina o campo DataType como um valor de enumeração definido por STORAGE_PROTOCOL_ATA_DATA_TYPE:
    • Use AtaDataTypeIdentify para identificar a unidade do ATA.
    • Use AtaDataTypeLogPage para obter páginas de log da unidade do ATA.

Requisitos

   
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Windows Server 2016
Cabeçalho winioctl.h (inclua Windows.h)

Confira também

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_QUERY