structure STORAGE_PROTOCOL_SPECIFIC_DATA (winioctl.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;
DWORD DataType;
DWORD ProtocolDataRequestValue;
DWORD ProtocolDataRequestSubValue;
DWORD ProtocolDataOffset;
DWORD ProtocolDataLength;
DWORD FixedProtocolReturnData;
DWORD ProtocolDataRequestSubValue2;
DWORD ProtocolDataRequestSubValue3;
DWORD 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.
FixedProtocolReturnData
Données retournées.
ProtocolDataRequestSubValue2
ProtocolDataRequestSubValue3
ProtocolDataRequestSubValue4
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.
- 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 d’identification du contrôleur ou d’identification de l’espace de noms.
- Utilisez NVMeDataTypeLogPage pour obtenir des pages de journal (y compris les données SMART/d’intégrité).
- Utilisez NVMeDataTypeFeature pour obtenir les fonctionnalités du lecteur NVMe.
- 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
Client minimal pris en charge | Windows 10 |
Serveur minimal pris en charge | Windows Server 2016 |
En-tête | winioctl.h (inclure Windows.h) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour