Partager via


STORAGE_PROTOCOL_SPECIFIC_DATA structure (ntddstor.h)

Décrit les données de dispositif spécifiques au protocole, fournies dans la mémoire tampon d’entrée et de sortie d’une demande IOCTL_STORAGE_QUERY_PROPERTY.

Syntaxe

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;

Membres

ProtocolType

Type de protocole. Les valeurs de ce membre sont définies dans l’énumération STORAGE_PROTOCOL_TYPE .

DataType

Type de données de protocole. Les types de données sont définis dans les énumérations STORAGE_PROTOCOL_NVME_DATA_TYPE et STORAGE_PROTOCOL_ATA_DATA_TYPE .

ProtocolDataRequestValue

Valeur de demande de données de protocole.

ProtocolDataRequestSubValue

Sous-valeur de la demande de données de protocole.

ProtocolDataOffset

Décalage de la mémoire tampon de données à partir du début de cette structure. La valeur standard peut être sizeof(STORAGE_PROTOCOL_SPECIFIC_DATA).

ProtocolDataLength

Longueur des données de protocole. ProtocolDataLength doit être >= 512 octets.

FixedProtocolReturnData

Données retournées.

ProtocolDataRequestSubValue2

Première valeur de sous-requête de données supplémentaire.

ProtocolDataRequestSubValue3

Deuxième valeur de sous-requête de données supplémentaire.

ProtocolDataRequestSubValue4

Troisième valeur de sous-requête de données supplémentaire.

Remarques

Lorsque vous utilisez IOCTL_STORAGE_QUERY_PROPERTY pour récupérer des informations spécifiques au protocole dans le STORAGE_PROTOCOL_DATA_DESCRIPTOR, configurez la structure de STORAGE_PROPERTY_QUERY comme suit :

  • Allouez une mémoire tampon qui peut contenir à la fois une structure STORAGE_PROPERTY_QUERY et une structure STORAGE_PROTOCOL_SPECIFIC_DATA.
  • Définissez le champ PropertyID sur StorageAdapterProtocolSpecificProperty ou StorageDeviceProtocolSpecificProperty pour une demande de contrôleur ou de périphérique/espace de noms, respectivement.
  • Définissez le champ QueryType sur PropertyStandardQuery.
  • Remplissez la structure STORAGE_PROTOCOL_SPECIFIC_DATA avec les valeurs souhaitées. Le début de STORAGE_PROTOCOL_SPECIFIC_DATA est le champ AdditionalParameters de STORAGE_PROPERTY_QUERY.

Pour spécifier un type d’informations spécifiques au protocole NVMe, configurez la structure STORAGE_PROTOCOL_SPECIFIC_DATA comme suit :

  • Définissez le champ ProtocolType sur ProtocolTypeNVMe.
  • Définissez le champ DataType sur une valeur d’énumération définie par STORAGE_PROTOCOL_NVME_DATA_TYPE :
    • NVMeDataTypeIdentify pour obtenir les données d’identification du contrôleur ou identifier les données d’espace de noms.
    • NVMeDataTypeLogPage pour obtenir les pages de journal (y compris les données SMART/d’intégrité).
    • NVMeDataTypeFeature pour obtenir les fonctionnalités du lecteur NVMe.

Pour spécifier un type d’informations spécifiques au protocole ATA, configurez la structure STORAGE_PROTOCOL_SPECIFIC_DATA comme suit :

  • Définissez le champ ProtocolType sur ProtocolTypeAta.
  • Définissez le champ DataType sur une valeur d’énumération définie par STORAGE_PROTOCOL_ATA_DATA_TYPE :
    • Utilisez AtaDataTypeIdentify pour identifier le lecteur ATA.
    • Utilisez AtaDataTypeLogPage pour obtenir des pages de journal à partir du lecteur ATA.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Serveur minimal pris en charge Windows Server 2016
En-tête ntddstor.h (inclure Ntddstor.h)

Voir aussi

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_ID

STORAGE_PROPERTY_QUERY

STORAGE_PROTOCOL_SPECIFIC_DATA_EXT