structure STORAGE_PROTOCOL_SPECIFIC_DATA (ntddstor.h)
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) |