Partager via


énumération STORAGE_PROTOCOL_NVME_DATA_TYPE (ntddstor.h)

Décrit le type de données spécifiques au protocole NVMe qui doivent être interrogées lors d’une demande de IOCTL_STORAGE_QUERY_PROPERTY .

Syntax

typedef enum _STORAGE_PROTOCOL_NVME_DATA_TYPE {
  NVMeDataTypeUnknown,
  NVMeDataTypeIdentify,
  NVMeDataTypeLogPage,
  NVMeDataTypeFeature,
  NVMeDataTypeLogPageEx,
  NVMeDataTypeFeatureEx
} STORAGE_PROTOCOL_NVME_DATA_TYPE, *PSTORAGE_PROTOCOL_NVME_DATA_TYPE;

Constantes

 
NVMeDataTypeUnknown
Type de données inconnu.
NVMeDataTypeIdentify
Obtenez des données d’identification, qui peuvent être des données d’identification du contrôleur ou des données d’espace de noms d’identification.

Lorsque ce type de données est interrogé, les champs de la structure STORAGE_PROTOCOL_SPECIFIC_DATA doivent avoir les valeurs suivantes :

- ProtocolDataRequestValue sera NVME_IDENTIFY_CNS_CONTROLLER pour l’adaptateur ou NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE pour l’espace de noms.
- Si protocolDataRequestValue est NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE, le champ ProtocolDataRequestSubValue spécifie l’ID d’espace de noms. (Notez que NVME_IDENTIFY_CNS_ACTIVE_NAMESPACES n’est actuellement pas pris en charge.)
NVMeDataTypeLogPage
Obtenir une page de journal NVMe.

Lorsque ce type de données est interrogé, les champs de la structure STORAGE_PROTOCOL_SPECIFIC_DATA doivent avoir les valeurs suivantes :

- ProtocolDataRequestValue est l’identificateur de la page de journal à récupérer.
- ProtocolDataRequestSubValue est la valeur 32 bits inférieure du décalage dans une page de journal à partir de laquelle commencer à retourner des données.
- ProtocolDataRequestSubValue2 est la valeur 32 bits supérieure du décalage dans une page de journal à partir de laquelle commencer à retourner des données.
- ProtocolDataRequestSubValue3 est l’identificateur spécifique au journal requis pour une page de journal particulière.
- ProtocolDataRequestSubValue4 est une structure STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE qui permet de spécifier des informations supplémentaires lors de l’obtention de la page de journal.
NVMeDataTypeFeature
Récupéré par commande - GET FEATURES ou SET FEATURES

Valeurs correspondantes dans STORAGE_PROTOCOL_SPECIFIC_DATA (get) ou STORAGE_PROTOCOL_SPECIFIC_DATA_EXT (set) :

- ProtocolDataRequestValue - Défini dans NVME_CDW10_GET_FEATURES / NVME_CDW10_SET_FEATURES
- ProtocolDataRequestSubValue - Défini dans NVME_CDW11_FEATURES
- ProtocolDataRequestSubValue2 - Défini dans NVME_CDW12_FEATURES
- ProtocolDataRequestSubValue3 : défini dans NVME_CDW13_FEATURES
- ProtocolDataRequestSubValue4 - Défini dans NVME_CDW14_FEATURES
- ProtocolDataRequestSubValue5 - Défini dans NVME_CDW15_FEATURES
NVMeDataTypeLogPageEx
Récupéré par la commande - PAGE GET LOG

Lorsque ce type de données est interrogé, les champs de la structure STORAGE_PROTOCOL_SPECIFIC_DATA_EXT doivent avoir les valeurs suivantes :

- ProtocolDataValue : défini dans NVME_CDW10_GET_LOG_PAGE
- ProtocolDataSubValue : défini dans NVME_CDW11_GET_LOG_PAGE
- ProtocolDataSubValue2 : défini dans NVME_CDW12_GET_LOG_PAGE
- ProtocolDataSubValue3 : défini dans NVME_CDW13_GET_LOG_PAGE
- ProtocolDataSubValue4 : défini dans NVME_CDW14_GET_LOG_PAGE
- ProtocolDataSubValue5 : défini dans NVME_CDW15_GET_LOG_PAGE (non utilisé actuellement)
- ProtocolDataSubValue6 - ID d’espace de noms
NVMeDataTypeFeatureEx
Récupéré par commande - GET FEATURES ou SET FEATURES

Lorsque ce type de données est interrogé, les champs de la structure STORAGE_PROTOCOL_SPECIFIC_DATA_EXT doivent avoir les valeurs suivantes :

- ProtocolDataValue : défini dans NVME_CDW10_GET_FEATURES/NVME_CDW10_SET_FEATURES
- ProtocolDataSubValue - Défini dans NVME_CDW11_FEATURES
- ProtocolDataSubValue2 : défini dans NVME_CDW12_FEATURES
- ProtocolDataSubValue3 : défini dans NVME_CDW13_FEATURES
- ProtocolDataSubValue4 : défini dans NVME_CDW14_FEATURES
- ProtocolDataSubValue5 - Défini dans NVME_CDW15_FEATURES
- ProtocolDataSubValue6 - ID d’espace de noms

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 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 :

    • 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.
    • Utilisez NVMeDataTypeLogPageEx pour obtenir des pages de journal (y compris des données SMART/d’intégrité) au format étendu.
    • Utilisez NVMeDataTypeFeatureEx pour obtenir les fonctionnalités du lecteur NVMe au format étendu.

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