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 |
Feedback
Feedback senden und anzeigen für