Freigeben über


NVME_STATUS_GENERIC_COMMAND_CODES-Aufzählung (nvme.h)

Enthält Werte, die einen Status angeben, der dem Befehl zugeordnet ist, der über viele verschiedene Befehlstypen hinweg generisch ist.

Diese Statuscodes sind der NVME_STATUS_TYPE_GENERIC_COMMANDStatuscodetyp und werden vom Controller in einem Eintrag in der Abschlusswarteschlange bereitgestellt, wenn ein Befehl abgeschlossen ist. Die Codes geben an, dass der befehl, der durch die Bezeichner "Befehl" und "Übermittlungswarteschlange" im Vervollständigungswarteschlangeneintrag angegeben wurde, abgeschlossen ist.

Syntax

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;

Konstanten

 
NVME_STATUS_SUCCESS_COMPLETION
Der Befehl wurde erfolgreich abgeschlossen.
NVME_STATUS_INVALID_COMMAND_OPCODE
Das zugeordnete Befehls opcode-Feld ist ungültig.
NVME_STATUS_INVALID_FIELD_IN_COMMAND
Ein ungültiges oder nicht unterstütztes Feld wird in den Befehlsparametern angegeben.
NVME_STATUS_COMMAND_ID_CONFLICT
Der Befehlsbezeichner wird bereits verwendet.

ANMERKUNG

Die Anzahl der Befehle, die nach einem ID-Konflikt gesucht werden, ist implementierungsspezifisch.

NVME_STATUS_DATA_TRANSFER_ERROR
Gibt einen Fehler beim Übertragen der Daten oder Metadaten an, die einem Befehl zugeordnet sind.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION
Gibt an, dass der Befehl aufgrund einer Stromausfallbenachrichtigung abgebrochen wurde.
NVME_STATUS_INTERNAL_DEVICE_ERROR
Der Befehl wurde aufgrund eines internen Fehlers nicht erfolgreich abgeschlossen. Details zum Fehler des internen Geräts werden als asynchrones Ereignis zurückgegeben.
NVME_STATUS_COMMAND_ABORT_REQUESTED
Der Befehl wurde aufgrund eines Befehlsabbruch abgebrochen, der empfangen wird, der den Bezeichner der Übermittlungswarteschlange und den Befehlsbezeichner dieses Befehls angegeben hat.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION
Der Befehl wurde aufgrund einer Lösch-E/A-Übermittlungswarteschlangenanforderung abgebrochen, die für die Übermittlungswarteschlange empfangen wurde, an die der Befehl gesendet wurde.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND
Der Befehl wurde abgebrochen, da der andere Befehl in einem fused-Vorgang fehlschlägt.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND
Der Befehl wurde abgebrochen, da der Begleitbefehl nicht gefunden wurde, da der nachfolgende Eintrag in der Übermittlungswarteschlange nicht gefunden wurde.
NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT
Der Namespace oder das Format dieses Namespaces sind ungültig.
NVME_STATUS_COMMAND_SEQUENCE_ERROR
Der Befehl wurde aufgrund einer Protokollverletzung in einer Mehrbefehlssequenz abgebrochen. Beispielsweise ein Verstoß gegen die Regeln für die Sequenzierung von Sicherheits-Sende- und Sicherheitseingang im TCG Storage Synchronous Interface Communications-Protokoll.
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR
Der Befehl enthält einen ungültigen SGL Last Segment- oder SGL Segment-Deskriptor. Dies kann vorkommen, wenn das SGL-Segment, auf das ein SGL Last Segment-Deskriptor verweist, einen SGL Segment-Deskriptor oder einen SGL Last Segment-Deskriptor oder einen SGL Segment-Deskriptor enthält. Dies kann auftreten, wenn ein SGL Last Segment-Deskriptor eine ungültige Länge enthält (z. B. eine Länge von Null oder eine, die kein Vielfaches von 16 ist).
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR
Es gibt einen SGL Last Segment-Deskriptor oder einen SGL Segment-Deskriptor an einer anderen Stelle als dem letzten Deskriptor eines Segments basierend auf der angegebenen Länge.
NVME_STATUS_DATA_SGL_LENGTH_INVALID
Dies kann auftreten, wenn die Länge eines Daten-SGL zu kurz ist. Dies kann auftreten, wenn die Länge eines Daten-SGL zu lang ist und der Verantwortliche SGL-Übertragungen nicht unterstützt, die länger als die Menge der zu übertragenden Daten wie im SGL-Supportfeld (SGLS) des Identify Controller (NVME_IDENTIFY_CONTROLLER_DATA) Datenstruktur angegeben wird.
NVME_STATUS_METADATA_SGL_LENGTH_INVALID
Dies kann auftreten, wenn die Länge eines Metadaten-SGL zu kurz ist. Dies kann auftreten, wenn die Länge eines Metadaten-SGL zu lang ist und der Controller SGL keine Übertragungen länger als die Menge der zu übertragenden Daten unterstützt, wie im SGL-Supportfeld (SGLS) des Identify Controller (NVME_IDENTIFY_CONTROLLER_DATA) Datenstruktur angegeben.
NVME_STATUS_SGL_DESCR_TYPE_INVALID
Der Typ eines SGL-Deskriptors ist ein Typ, der vom Controller nicht unterstützt wird.
NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER
Die versuchte Verwendung des Controllerspeicherpuffers wird vom Controller nicht unterstützt.
NVME_STATUS_PRP_OFFSET_INVALID
Das Offset-Feld für einen PRP-Eintrag ist ungültig. Dies kann auftreten, wenn nach dem ersten Eintrag ein PRP-Eintrag mit einem Offset ungleich Null vorhanden ist.
NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED
Die angegebene Länge überschreitet die Größe der Atomschreibeinheit.
NVME_STATUS_OPERATION_DENIED
Der Befehl wurde aufgrund fehlender Zugriffsrechte verweigert.
NVME_STATUS_SGL_OFFSET_INVALID
Der in einem Deskriptor angegebene Offset ist ungültig.
NVME_STATUS_RESERVED
Reserviert.
NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT
Das NVM-Subsystem hat die gleichzeitige Verwendung von 64-Bit- und 128-Bit-Hostbezeichnerwerten auf verschiedenen Controllern erkannt.
NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED
Der Keep Alive-Timer ist abgelaufen.
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID
Der angegebene Keep Alive-Timeoutwert ist ungültig.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT
Der Befehl wurde aufgrund eines Reservierungskaufbefehls abgebrochen, wobei die Reservierungs-Kaufaktion (RACQA) auf 010b (Preempt und Abort) festgelegt ist.
NVME_STATUS_SANITIZE_FAILED
Der letzte Bereinigungsvorgang ist fehlgeschlagen, und es wurde keine Wiederherstellungsaktion erfolgreich abgeschlossen.
NVME_STATUS_SANITIZE_IN_PROGRESS
Die angeforderte Funktion (z. B. Befehl) ist verboten, während ein Bereinigungsvorgang ausgeführt wird.
NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID
Die Adressausrichtung oder Längen granularität für einen SGLData-Blockdeskriptor ist ungültig.
NVME_STATUS_NVM_LBA_OUT_OF_RANGE
Der Befehl verweist auf eine LBA, die die Größe des Namespace überschreitet.
NVME_STATUS_NVM_CAPACITY_EXCEEDED
Die Ausführung des Befehls hat dazu geführt, dass die Kapazität des Namespace überschritten wurde. Dieser Fehler tritt auf, wenn die Namespace Auslastung die Namespace Kapazität überschreitet.
NVME_STATUS_NVM_NAMESPACE_NOT_READY
Auf den Namespace kann nicht zugegriffen werden. Das Bit "Nicht wiederholen" gibt an, ob die erneute Ausgabe des Befehls zu einem späteren Zeitpunkt erfolgreich sein kann.
NVME_STATUS_NVM_RESERVATION_CONFLICT
Der Befehl wurde aufgrund eines Konflikts mit einer Reservierung im namespace abgebrochen.
NVME_STATUS_FORMAT_IN_PROGRESS
Der Namespace wird derzeit formatiert. Das Bit "Nicht wiederholen" wird auf "0" gelöscht, um anzugeben, dass der Befehl erfolgreich sein kann, wenn er erneut übermittelt wird.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10
Header- nvme.h