Partager via


structure STORAGE_PROTOCOL_DATA_DESCRIPTOR (ntddstor.h)

Cette structure est utilisée conjointement avec IOCTL_STORAGE_SET_PROPERTY et IOCTL_STORAGE_QUERY_PROPERTY pour définir ou interroger des données spécifiques au protocole à partir d’un périphérique de stockage ou d’un adaptateur.

Syntaxe

typedef struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR {
  ULONG                          Version;
  ULONG                          Size;
  STORAGE_PROTOCOL_SPECIFIC_DATA ProtocolSpecificData;
} STORAGE_PROTOCOL_DATA_DESCRIPTOR, *PSTORAGE_PROTOCOL_DATA_DESCRIPTOR;

Membres

Version

Version de cette structure. Défini sur taille de(STORAGE_PROTOCOL_DATA_DESCRIPTOR).

Size

Taille totale en octets du descripteur, y compris l’espace pour toutes les données de protocole. Doit être =>taille de(STORAGE_PROTOCOL_DATA_DESCRIPTOR).

ProtocolSpecificData

Données spécifiques au protocole, de type STORAGE_PROTOCOL_SPECIFIC_DATA.

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 STORAGE_PROPERTY_QUERY comme suit :

  • Allouez une mémoire tampon qui peut contenir à la fois une STORAGE_PROPERTY_QUERY et une structure STORAGE_PROTOCOL_SPECIFIC_DATA.
  • Définissez le champ PropertyID sur StorageAdapterProtocolSpecificProperty ou StorageDeviceProtocolSpecificProperty pour une requête de contrôleur ou d’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 la 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:
    • Utilisez NVMeDataTypeIdentify pour obtenir les données identifier le contrôleur ou identifier les données d’espace de noms.
    • Utilisez NVMeDataTypeLogPage pour obtenir des pages de journal (y compris les données SMART/health).
    • Utilisez NVMeDataTypeFeature pour obtenir des 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10
serveur minimum pris en charge Windows Server 2016
d’en-tête ntddstor.h (include Ntddstor.h)

Voir aussi

IOCTL_STORAGE_QUERY_PROPERTY

IOCTL_STORAGE_SET_PROPERTY

STORAGE_PROPERTY_ID

STORAGE_PROPERTY_QUERY

STORAGE_PROTOCOL_SPECIFIC_DATA

STORAGE_PROTOCOL_SPECIFIC_DATA_EXT