énumération NVME_NVM_COMMANDS (nvme.h)

Contient des valeurs qui indiquent une commande dans le jeu de commandes NVM.

Syntax

typedef enum {
  NVME_NVM_COMMAND_FLUSH,
  NVME_NVM_COMMAND_WRITE,
  NVME_NVM_COMMAND_READ,
  NVME_NVM_COMMAND_WRITE_UNCORRECTABLE,
  NVME_NVM_COMMAND_COMPARE,
  NVME_NVM_COMMAND_WRITE_ZEROES,
  NVME_NVM_COMMAND_DATASET_MANAGEMENT,
  NVME_NVM_COMMAND_VERIFY,
  NVME_NVM_COMMAND_RESERVATION_REGISTER,
  NVME_NVM_COMMAND_RESERVATION_REPORT,
  NVME_NVM_COMMAND_RESERVATION_ACQUIRE,
  NVME_NVM_COMMAND_RESERVATION_RELEASE,
  NVME_NVM_COMMAND_COPY,
  NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND,
  NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE,
  NVME_NVM_COMMAND_ZONE_APPEND
} NVME_NVM_COMMANDS;

Constantes

 
NVME_NVM_COMMAND_FLUSH
Commande Vidage qui valide les données et métadonnées associées aux espaces de noms spécifiés sur un média non volatile. Le vidage s’applique à toutes les commandes effectuées avant l’envoi de la commande Flush. Le contrôleur peut également vider des données et/ou des métadonnées supplémentaires à partir de n’importe quel espace de noms.
NVME_NVM_COMMAND_WRITE
Commande Write qui écrit les données et les métadonnées, le cas échéant, dans le contrôleur NVM pour les blocs logiques spécifiés. L’hôte peut également spécifier les informations de protection à inclure dans le cadre de l’opération.

La commande utilise les champs Commande Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 et Command Dword 15. Si la commande utilise des PRP pour le transfert de données, les champs Pointeur de métadonnées, PrP Entry 1 et PRP Entry 2 sont utilisés. Si la commande utilise des SGL pour le transfert de données, les champs Metadata SGL Segment Pointer et SGL Entry 1 sont utilisés.
NVME_NVM_COMMAND_READ
Commande Read qui lit les données et les métadonnées, le cas échéant, à partir du contrôleur NVM pour les blocs logiques spécifiés. La commande peut spécifier les informations de protection à vérifier dans le cadre de l’opération de lecture.

La commande utilise les champs Commande Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 et Command Dword 15. Si la commande utilise des PRP pour le transfert de données, les champs Pointeur de métadonnées, PrP Entry 1 et PRP Entry 2 sont utilisés. Si la commande utilise des SGL pour le transfert de données, les champs Metadata SGL Segment Pointer et SGL Entry 1 sont utilisés.
NVME_NVM_COMMAND_WRITE_UNCORRECTABLE
Commande Write Uncorrectable utilisée pour marquer une plage de blocs logiques comme non valide. Lorsque les blocs logiques spécifiés sont lus après cette opération, un échec est retourné avec une erreur de lecture non récupérée status. Pour effacer le bloc logique non valide status, une opération d’écriture est effectuée sur ces blocs logiques.

Les champs utilisés sont les champs Dword 10, Commande Dword 11 et Commande Dword 12. Tous les autres champs spécifiques aux commandes sont réservés.
NVME_NVM_COMMAND_COMPARE
Commande Comparer qui lit les blocs logiques spécifiés par la commande à partir du support et compare les données lues à une mémoire tampon de données de comparaison transférée dans le cadre de la commande . Si les données lues à partir du contrôleur et la mémoire tampon de données de comparaison sont équivalentes sans erreurs de comparaison, la commande s’exécute correctement. En cas d’erreur, la commande se termine avec l’erreur Comparer l’échec. Si des métadonnées sont fournies, une comparaison est également effectuée pour les métadonnées.

La commande utilise les champs Commande Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 et Command Dword 15. Si la commande utilise des PRP pour le transfert de données, les champs Pointeur de métadonnées, PrP Entry 1 et PRP Entry 2 sont utilisés. Si la commande utilise des SGL pour le transfert de données, les champs Metadata SGL Segment Pointer et SGL Entry 1 sont utilisés. Tous les autres champs spécifiques aux commandes sont réservés.
NVME_NVM_COMMAND_WRITE_ZEROES
Commande Écrire des zéros utilisée pour définir une plage de blocs logiques sur zéro. Une fois cette commande terminée, la valeur retournée par les lectures suivantes de blocs logiques dans cette plage doit être des zéros jusqu’à ce qu’une écriture se produise dans cette plage LBA. Les métadonnées de cette commande doivent être toutes des zéros et les informations de protection sont mises à jour en fonction de CDW12. PRINFO.

Les champs utilisés sont commande Dword 10, Commande Dword 11, Commande Dword 12, Commande Dword 14 et Commande Dword 15.
NVME_NVM_COMMAND_DATASET_MANAGEMENT
Commande De gestion du jeu de données utilisée par l’hôte pour indiquer les attributs des plages de blocs logiques.

Cela inclut des attributs tels que la fréquence de lecture ou d’écriture des données, la taille d’accès et d’autres informations qui peuvent être utilisées pour optimiser les performances et la fiabilité. Cette commande est un avis ; un contrôleur conforme peut choisir de n’effectuer aucune action en fonction des informations fournies.

La commande utilise les champs Commande Dword 10 et Commande Dword 11. Si la commande utilise des PRP pour le transfert de données, les champs Entrée PRP 1 et Entrée PRP 2 sont utilisés. Si la commande utilise des listes DEG pour le transfert de données, le champ SGL Entry 1 est utilisé. Tous les autres champs spécifiques aux commandes sont réservés.
NVME_NVM_COMMAND_RESERVATION_REGISTER
Commande Registre de réservation utilisée pour inscrire, annuler ou remplacer une clé de réservation.

La commande utilise la commande Dword 10 et une structure de données Reservation Register en mémoire. Si la commande utilise des PRP pour le transfert de données, les champs Entrée PRP 1 et Entrée PRP 2 sont utilisés. Si la commande utilise des listes DEG pour le transfert de données, le champ SGL Entry 1 est utilisé. Tous les autres champs spécifiques aux commandes sont réservés.
NVME_NVM_COMMAND_RESERVATION_REPORT
Commande Rapport de réservation qui renvoie en mémoire une structure de données d’état de réservation qui décrit l’inscription et la réservation status d’un espace de noms.

La taille de la structure de données État de la réservation est une fonction du nombre de contrôleurs dans le sous-système NVM qui sont associés aux hôtes qui sont inscrits de l’espace de noms (par exemple, il existe une structure de données de contrôleur inscrit pour chacun de ces contrôleurs).
NVME_NVM_COMMAND_RESERVATION_ACQUIRE
La commande Reservation Acquire utilisée pour acquérir une réservation sur un espace de noms, préempter une réservation détenue sur un espace de noms et abandonner une réservation détenue sur un espace de noms.

La commande utilise la commande Dword 10 et une structure de données d’acquisition de réservation en mémoire. Si la commande utilise des PRP pour le transfert de données, les champs Entrée PRP 1 et Entrée PRP 2 sont utilisés. Si la commande utilise des listes DEG pour le transfert de données, le champ SGL Entry 1 est utilisé. Tous les autres champs spécifiques aux commandes sont réservés.
NVME_NVM_COMMAND_RESERVATION_RELEASE
Commande De mise en production de réservation utilisée pour libérer ou effacer une réservation conservée sur un espace de noms.

La commande utilise la commande Dword 10 et une structure de données de mise en production de réservation en mémoire. Si la commande utilise des PRP pour le transfert de données, les champs Entrée PRP 1 et Entrée PRP 2 sont utilisés. Si la commande utilise des listes DEG pour le transfert de données, le champ SGL Entry 1 est utilisé. Tous les autres champs spécifiques aux commandes sont réservés.

Remarques

Les commandes NVM sont envoyées par l’hôte lorsque le contrôleur est prêt comme indiqué dans le registre État du contrôleur et après la création de la ou des files d’attente de soumission d’E/S appropriées et des files d’attente d’achèvement d’E/S.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
En-tête nvme.h