Condividi tramite


struttura STORAGE_PROTOCOL_SPECIFIC_DATA (ntddstor.h)

Descrive i dati del dispositivo specifici del protocollo, forniti nel buffer di input e output di una richiesta di IOCTL_STORAGE_QUERY_PROPERTY.

Sintassi

typedef struct _STORAGE_PROTOCOL_SPECIFIC_DATA {
  STORAGE_PROTOCOL_TYPE ProtocolType;
  ULONG                 DataType;
  ULONG                 ProtocolDataRequestValue;
  ULONG                 ProtocolDataRequestSubValue;
  ULONG                 ProtocolDataOffset;
  ULONG                 ProtocolDataLength;
  ULONG                 FixedProtocolReturnData;
  ULONG                 ProtocolDataRequestSubValue2;
  ULONG                 ProtocolDataRequestSubValue3;
  ULONG                 ProtocolDataRequestSubValue4;
} STORAGE_PROTOCOL_SPECIFIC_DATA, *PSTORAGE_PROTOCOL_SPECIFIC_DATA;

Membri

ProtocolType

Tipo di protocollo. I valori per questo membro sono definiti nell'enumerazione STORAGE_PROTOCOL_TYPE.

DataType

Tipo di dati del protocollo. I tipi di dati vengono definiti nelle enumerazioni STORAGE_PROTOCOL_NVME_DATA_TYPE e STORAGE_PROTOCOL_ATA_DATA_TYPE.

ProtocolDataRequestValue

Valore della richiesta di dati del protocollo.

ProtocolDataRequestSubValue

Valore secondario della richiesta di dati del protocollo.

ProtocolDataOffset

Offset del buffer di dati dall'inizio di questa struttura. Il valore tipico può essere sizeof(STORAGE_PROTOCOL_SPECIFIC_DATA).

ProtocolDataLength

Lunghezza dei dati del protocollo. ProtocolDataLength deve essere >= 512 byte.

FixedProtocolReturnData

Dati restituiti.

ProtocolDataRequestSubValue2

Primo valore aggiuntivo della richiesta secondaria di dati.

ProtocolDataRequestSubValue3

Secondo valore aggiuntivo della richiesta secondaria di dati.

ProtocolDataRequestSubValue4

Terzo valore aggiuntivo della richiesta secondaria dei dati.

Osservazioni

Quando si usa IOCTL_STORAGE_QUERY_PROPERTY per recuperare informazioni specifiche del protocollo nella STORAGE_PROTOCOL_DATA_DESCRIPTOR, configurare la struttura STORAGE_PROPERTY_QUERY come indicato di seguito:

  • Allocare un buffer che può contenere sia un STORAGE_PROPERTY_QUERY che una struttura STORAGE_PROTOCOL_SPECIFIC_DATA.
  • Impostare il campo PropertyID su StorageAdapterProtocolSpecificProperty o StorageDeviceProtocolSpecificProper ty rispettivamente per una richiesta controller o dispositivo/spazio dei nomi.
  • Impostare il campo QueryType su PropertyStandardQuery.
  • Compilare la struttura STORAGE_PROTOCOL_SPECIFIC_DATA con i valori desiderati. L'inizio di STORAGE_PROTOCOL_SPECIFIC_DATA è il campo AdditionalParameters di STORAGE_PROPERTY_QUERY.

Per specificare un tipo di informazioni specifiche del protocollo NVMe, configurare la struttura STORAGE_PROTOCOL_SPECIFIC_DATA come indicato di seguito:

  • Impostare il campo ProtocolType su ProtocolTypeNVMe.
  • Impostare il campo DataType su un valore di enumerazione definito da STORAGE_PROTOCOL_NVME_DATA_TYPE:
    • NVMeDataTypeIdentify per ottenere identificare i dati del controller o identificare i dati dello spazio dei nomi.
    • NVMeDataTypeLogPage per ottenere pagine di log (inclusi i dati SMART/health).
    • NVMeDataTypeFeature per ottenere le funzionalità dell'unità NVMe.

Per specificare un tipo di informazioni specifiche del protocollo ATA, configurare la struttura STORAGE_PROTOCOL_SPECIFIC_DATA come indicato di seguito:

  • Impostare il campo ProtocolType su ProtocolTypeAta.
  • Impostare il campo DataType su un valore di enumerazione definito da STORAGE_PROTOCOL_ATA_DATA_TYPE:
    • Usare AtaDataTypeIdentify per identificare l'unità ATA.
    • Usare AtaDataTypeLogPage per ottenere pagine di log dall'unità ATA.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10
server minimo supportato Windows Server 2016
intestazione ntddstor.h (include Ntddstor.h)

Vedere anche

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_ID

STORAGE_PROPERTY_QUERY

STORAGE_PROTOCOL_SPECIFIC_DATA_EXT