Partager via


énumération NVME_STATUS_GENERIC_COMMAND_CODES (nvme.h)

Contient des valeurs qui indiquent un état associé à la commande générique dans de nombreux types de commandes différents.

Ces codes d’état sont du type de code d’état NVME_STATUS_TYPE_GENERIC_COMMAND et sont publiés par le contrôleur dans une entrée de file d’attente d’achèvement lorsqu’une commande est terminée. Les codes indiquent que la commande spécifiée par les identificateurs de file d’attente de commande et de soumission dans l’entrée de file d’attente d’achèvement est terminée.

Syntaxe

typedef enum {
  NVME_STATUS_SUCCESS_COMPLETION,
  NVME_STATUS_INVALID_COMMAND_OPCODE,
  NVME_STATUS_INVALID_FIELD_IN_COMMAND,
  NVME_STATUS_COMMAND_ID_CONFLICT,
  NVME_STATUS_DATA_TRANSFER_ERROR,
  NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION,
  NVME_STATUS_INTERNAL_DEVICE_ERROR,
  NVME_STATUS_COMMAND_ABORT_REQUESTED,
  NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION,
  NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND,
  NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND,
  NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT,
  NVME_STATUS_COMMAND_SEQUENCE_ERROR,
  NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR,
  NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR,
  NVME_STATUS_DATA_SGL_LENGTH_INVALID,
  NVME_STATUS_METADATA_SGL_LENGTH_INVALID,
  NVME_STATUS_SGL_DESCR_TYPE_INVALID,
  NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER,
  NVME_STATUS_PRP_OFFSET_INVALID,
  NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED,
  NVME_STATUS_OPERATION_DENIED,
  NVME_STATUS_SGL_OFFSET_INVALID,
  NVME_STATUS_RESERVED,
  NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT,
  NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED,
  NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID,
  NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT,
  NVME_STATUS_SANITIZE_FAILED,
  NVME_STATUS_SANITIZE_IN_PROGRESS,
  NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID,
  NVME_STATUS_DIRECTIVE_TYPE_INVALID,
  NVME_STATUS_DIRECTIVE_ID_INVALID,
  NVME_STATUS_NVM_LBA_OUT_OF_RANGE,
  NVME_STATUS_NVM_CAPACITY_EXCEEDED,
  NVME_STATUS_NVM_NAMESPACE_NOT_READY,
  NVME_STATUS_NVM_RESERVATION_CONFLICT,
  NVME_STATUS_FORMAT_IN_PROGRESS
} NVME_STATUS_GENERIC_COMMAND_CODES;

Constantes

 
NVME_STATUS_SUCCESS_COMPLETION
La commande s’est terminée avec succès.
NVME_STATUS_INVALID_COMMAND_OPCODE
Le champ opcode de commande associé n’est pas valide.
NVME_STATUS_INVALID_FIELD_IN_COMMAND
Un champ non valide ou non pris en charge est spécifié dans les paramètres de commande.
NVME_STATUS_COMMAND_ID_CONFLICT
L’identificateur de commande est déjà utilisé.

NOTE

Le nombre de commandes recherchées pour un conflit d’ID est spécifique à l’implémentation.

NVME_STATUS_DATA_TRANSFER_ERROR
Indique une erreur lors du transfert des données ou des métadonnées associées à une commande.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION
Indique que la commande a été abandonnée en raison d’une notification de perte d’alimentation.
NVME_STATUS_INTERNAL_DEVICE_ERROR
La commande n’a pas été exécutée correctement en raison d’une erreur interne. Les détails de l’erreur d’appareil interne sont retournés en tant qu’événement asynchrone.
NVME_STATUS_COMMAND_ABORT_REQUESTED
La commande a été abandonnée en raison d’une commande d’abandon de commande reçue qui a spécifié l’identificateur de file d’attente de soumission et l’identificateur de commande de cette commande.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION
La commande a été abandonnée en raison d’une demande de file d’attente de soumission d’E/S Delete reçue pour la file d’attente de soumission à laquelle la commande a été envoyée.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND
La commande a été abandonnée en raison de l’échec de l’autre commande dans une opération fusionnée.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND
La commande a été abandonnée en raison de la commande fusionnée du compagnon introuvable en tant qu’entrée de file d’attente de soumission suivante.
NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT
L’espace de noms ou le format de cet espace de noms n’est pas valide.
NVME_STATUS_COMMAND_SEQUENCE_ERROR
La commande a été abandonnée en raison d’une violation de protocole dans une séquence de commandes multiples. Par exemple, une violation des règles de séquencement d’envoi et de réception de sécurité dans le protocole TCG Storage Synchronous Interface Communications.
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR
La commande inclut un descripteur SGL Last Segment ou SGL Segment non valide. Cela peut se produire lorsque le segment SGL pointé par un descripteur SGL Last Segment contient un descripteur SGL Segment ou un descripteur SGL Last Segment ou un descripteur SGL Segment. Cela peut se produire lorsqu’un descripteur SGL Last Segment contient une longueur non valide (par exemple, une longueur de zéro ou une autre qui n’est pas un multiple de 16).
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR
Il existe un descripteur SGL Last Segment ou un descripteur SGL Segment dans un emplacement autre que le dernier descripteur d’un segment en fonction de la longueur indiquée.
NVME_STATUS_DATA_SGL_LENGTH_INVALID
Cela peut se produire si la longueur d’un SGL de données est trop courte. Cela peut se produire si la longueur d’une SGL de données est trop longue et que le contrôleur ne prend pas en charge les transferts SGL plus longs que la quantité de données à transférer, comme indiqué dans le champ support SGL (SGLS) du contrôleur d’identification de (NVME_IDENTIFY_CONTROLLER_DATA) structure de données.
NVME_STATUS_METADATA_SGL_LENGTH_INVALID
Cela peut se produire si la longueur d’un SGL de métadonnées est trop courte. Cela peut se produire si la longueur d’un SGL de métadonnées est trop longue et que le contrôleur ne prend pas en charge les transferts SGL plus longs que la quantité de données à transférer, comme indiqué dans le champ support SGL (SGLS) du contrôleur d’identification de (NVME_IDENTIFY_CONTROLLER_DATA) structure de données.
NVME_STATUS_SGL_DESCR_TYPE_INVALID
Le type d’un descripteur SGL est un type qui n’est pas pris en charge par le contrôleur.
NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER
La tentative d’utilisation de la mémoire tampon du contrôleur n’est pas prise en charge par le contrôleur.
NVME_STATUS_PRP_OFFSET_INVALID
Le champ Offset d’une entrée PRP n’est pas valide. Cela peut se produire lorsqu’il existe une entrée PRP avec un décalage non nul après la première entrée.
NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED
La longueur spécifiée dépasse la taille de l’unité d’écriture atomique.
NVME_STATUS_OPERATION_DENIED
La commande a été refusée en raison d’un manque de droits d’accès.
NVME_STATUS_SGL_OFFSET_INVALID
Le décalage spécifié dans un descripteur n’est pas valide.
NVME_STATUS_RESERVED
Réservé.
NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT
Le sous-système NVM a détecté l’utilisation simultanée de valeurs d’identificateur d’hôte 64 bits et 128 bits sur différents contrôleurs.
NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED
Le minuteur Keep Alive a expiré.
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID
La valeur Keep Alive Timeout spécifiée n’est pas valide.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT
La commande a été abandonnée en raison d’une commande Reservation Acquire avec l’action RACQA (Reservation Acquire Action) définie sur 010b (Préempt et Abort).
NVME_STATUS_SANITIZE_FAILED
Échec de l’opération d’assainissement la plus récente et aucune action de récupération n’a été effectuée.
NVME_STATUS_SANITIZE_IN_PROGRESS
La fonction demandée (par exemple, commande) est interdite pendant qu’une opération de nettoyage est en cours.
NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID
L’alignement de l’adresse ou la granularité de longueur d’un descripteur de bloc SGLData n’est pas valide.
NVME_STATUS_NVM_LBA_OUT_OF_RANGE
La commande fait référence à un LBA qui dépasse la taille de l’espace de noms.
NVME_STATUS_NVM_CAPACITY_EXCEEDED
L’exécution de la commande a provoqué le dépassement de la capacité de l’espace de noms. Cette erreur se produit lorsque l’utilisation de l’espace de noms dépasse la capacité de l’espace de noms.
NVME_STATUS_NVM_NAMESPACE_NOT_READY
L’espace de noms n’est pas prêt à être accessible. Le bit Ne pas réessayer indique si la réécriture de la commande ultérieurement peut réussir.
NVME_STATUS_NVM_RESERVATION_CONFLICT
La commande a été abandonnée en raison d’un conflit avec une réservation conservée sur l’espace de noms accessible.
NVME_STATUS_FORMAT_IN_PROGRESS
L’espace de noms est actuellement mis en forme. Le bit Ne pas réessayer est effacé sur « 0 » pour indiquer que la commande peut réussir s’il est renvoyé.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10
d’en-tête nvme.h