NVME_STATUS_GENERIC_COMMAND_CODES-Enumeration (nvme.h)

Enthält Werte, die einen status angeben, der dem Befehl zugeordnet ist, der für viele verschiedene Befehlstypen allgemein ist.

Diese status-Codes sind vom NVME_STATUS_TYPE_GENERIC_COMMANDStatuscodetyp und werden vom Controller in einem Vervollständigungswarteschlangeneintrag bereitgestellt, wenn ein Befehl abgeschlossen ist. Die Codes geben an, dass der durch die Bezeichner Befehls- und Übermittlungswarteschlange im Vervollständigungswarteschlangeneintrag angegebene Befehl abgeschlossen wurde.

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 zugehörige Befehlsfeld opcode ist ungültig.
NVME_STATUS_INVALID_FIELD_IN_COMMAND
In den Befehlsparametern wird ein ungültiges oder nicht unterstütztes Feld angegeben.
NVME_STATUS_COMMAND_ID_CONFLICT
Der Befehlsbezeichner wird bereits verwendet.

HINWEIS

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

NVME_STATUS_DATA_TRANSFER_ERROR
Gibt einen Fehler beim Übertragen der Einem Befehl zugeordneten Daten oder Metadaten an.
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 internen Gerätefehler werden als asynchrones Ereignis zurückgegeben.
NVME_STATUS_COMMAND_ABORT_REQUESTED
Der Befehl wurde abgebrochen, weil ein Befehl Abort empfangen wurde, der den Übermittlungswarteschlangenbezeichner und den Befehlsbezeichner dieses Befehls angibt.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION
Der Befehl wurde aufgrund einer E/A-Übermittlungswarteschlange löschen-Anforderung 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, weil der andere Befehl in einem Fusionsvorgang fehlschlägt.
NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND
Der Befehl wurde abgebrochen, da der begleitbegleitende Fused-Befehl als nachfolgenden Eintrag in der Übermittlungswarteschlange nicht gefunden wurde.
NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT
Der Namespace oder das Format dieses Namespace ist ungültig.
NVME_STATUS_COMMAND_SEQUENCE_ERROR
Der Befehl wurde aufgrund einer Protokollverletzung in einer Sequenz mit mehreren Befehlen abgebrochen. Beispiel: Verstoß gegen die Sequenzierungsregeln für Sicherheitssende und Sicherheitserhaltung 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 auftreten, wenn das SGL-Segment, auf das von einem SGL Last Segment-Deskriptor verwiesen wird, einen SGL-Segmentdeskriptor oder einen SGL-Segmentdeskriptor enthält. Dies kann auftreten, wenn ein SGL Last Segment-Deskriptor eine ungültige Länge enthält (z. B. eine Länge von 0 oder eine Länge, die kein Vielfaches von 16 ist).
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR
Es gibt einen SGL Last Segment-Deskriptor oder einen SGL-Segmentdeskriptor an einem anderen Ort 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 einer Daten-SGL zu kurz ist. Dies kann auftreten, wenn die Länge einer Daten-SGL zu lang ist und der Controller keine SGL-Übertragungen unterstützt, die länger als die zu übertragende Datenmenge sind, wie im Feld SGL-Support (SGLS) der Datenstruktur Identifizieren des Verantwortlichen (NVME_IDENTIFY_CONTROLLER_DATA) angegeben.
NVME_STATUS_METADATA_SGL_LENGTH_INVALID
Dies kann auftreten, wenn die Länge einer Metadaten-SGL zu kurz ist. Dies kann auftreten, wenn die Länge einer Metadaten-SGL zu lang ist und der Controller keine SGL-Übertragungen unterstützt, die länger als die zu übertragende Datenmenge sind, wie im Feld SGL-Unterstützung (SGLS) der Datenstruktur Identifizieren des Controllers (NVME_IDENTIFY_CONTROLLER_DATA) 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 Controller-Speicherpuffers 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 Ungleich-Null-Offset vorhanden ist.
NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED
Die angegebene Länge überschreitet die Größe der atomaren Schreibeinheit.
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 erkannte die gleichzeitige Verwendung von 64-Bit- und 128-Bit-Hostbezeichnerwerten auf verschiedenen Controllern.
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 Reservation Acquire-Befehls abgebrochen, bei dem die Reservierungs-Akquirierenaktion (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. der Befehl) ist verboten, während ein Bereinigungsvorgang ausgeführt wird.
NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID
Die Adressausrichtung oder Längengranularität für einen SGLData-Blockdeskriptor ist ungültig.
NVME_STATUS_NVM_LBA_OUT_OF_RANGE
Der Befehl verweist auf einen LBA, der 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 Namespaceauslastung die Namespacekapazitä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 ist.
NVME_STATUS_NVM_RESERVATION_CONFLICT
Der Befehl wurde aufgrund eines Konflikts mit einer Reservierung abgebrochen, die für den aufgerufenen Namespace gespeichert wurde.
NVME_STATUS_FORMAT_IN_PROGRESS
Der Namespace wird derzeit formatiert. Das Bit "Nicht wiederholen" wird auf "0" deaktiviert, um anzugeben, dass der Befehl erfolgreich ist, wenn er erneut übermittelt wird.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 10
Kopfzeile nvme.h