Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Décrit les données d’appareil spécifiques au protocole, fournies dans la mémoire tampon d’entrée et de sortie d’une demande de 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 la 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 qui se trouve à partir du début de cette structure. La valeur classique peut être taille de(STORAGE_PROTOCOL_SPECIFIC_DATA).
ProtocolDataLength
Longueur des données du protocole. ProtocolDataLength doit être >= 512 octets.
FixedProtocolReturnData
Données retournées.
ProtocolDataRequestSubValue2
Première valeur de sous-requête de données supplémentaires.
ProtocolDataRequestSubValue3
Deuxième valeur de sous-requête de données supplémentaires.
ProtocolDataRequestSubValue4
Troisième valeur de sous-requête de données supplémentaires.
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 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 Identifier le contrôleur ou identifier les données d’espace de noms.
- NVMeDataTypeLogPage pour obtenir des pages de journal (y compris les données SMART/health).
- 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) |