NVME_STATUS_COMMAND_SPECIFIC_CODES-Enumeration (nvme.h)

Enthält Werte, die status angeben, die für einen bestimmten Befehl spezifisch sind.

Diese status Codes haben den NVME_STATUS_TYPE_COMMAND_SPECIFICStatuscodetyp und werden vom Controller in einem Vervollständigungswarteschlangeneintrag bereitgestellt, wenn ein Befehl abgeschlossen ist.

Syntax

typedef enum {
  NVME_STATUS_COMPLETION_QUEUE_INVALID,
  NVME_STATUS_INVALID_QUEUE_IDENTIFIER,
  NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED,
  NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED,
  NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED,
  NVME_STATUS_INVALID_FIRMWARE_SLOT,
  NVME_STATUS_INVALID_FIRMWARE_IMAGE,
  NVME_STATUS_INVALID_INTERRUPT_VECTOR,
  NVME_STATUS_INVALID_LOG_PAGE,
  NVME_STATUS_INVALID_FORMAT,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET,
  NVME_STATUS_INVALID_QUEUE_DELETION,
  NVME_STATUS_FEATURE_ID_NOT_SAVEABLE,
  NVME_STATUS_FEATURE_NOT_CHANGEABLE,
  NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFIC,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESET,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESET,
  NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION,
  NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED,
  NVME_STATUS_OVERLAPPING_RANGE,
  NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY,
  NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE,
  NVME_STATUS_NAMESPACE_ALREADY_ATTACHED,
  NVME_STATUS_NAMESPACE_IS_PRIVATE,
  NVME_STATUS_NAMESPACE_NOT_ATTACHED,
  NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED,
  NVME_STATUS_CONTROLLER_LIST_INVALID,
  NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESS,
  NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITED,
  NVME_STATUS_INVALID_CONTROLLER_IDENTIFIER,
  NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATE,
  NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCES,
  NVME_STATUS_INVALID_RESOURCE_IDENTIFIER,
  NVME_STATUS_SANITIZE_PROHIBITED_ON_PERSISTENT_MEMORY,
  NVME_STATUS_INVALID_ANA_GROUP_IDENTIFIER,
  NVME_STATUS_ANA_ATTACH_FAILED,
  NVME_IO_COMMAND_SET_NOT_SUPPORTED,
  NVME_IO_COMMAND_SET_NOT_ENABLED,
  NVME_IO_COMMAND_SET_COMBINATION_REJECTED,
  NVME_IO_COMMAND_SET_INVALID,
  NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILED,
  NVME_STATUS_ZONE_INVALID_FORMAT,
  NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES,
  NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION,
  NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE,
  NVME_STATUS_NVM_COMMAND_SIZE_LIMIT_EXCEEDED,
  NVME_STATUS_ZONE_BOUNDARY_ERROR,
  NVME_STATUS_ZONE_FULL,
  NVME_STATUS_ZONE_READ_ONLY,
  NVME_STATUS_ZONE_OFFLINE,
  NVME_STATUS_ZONE_INVALID_WRITE,
  NVME_STATUS_ZONE_TOO_MANY_ACTIVE,
  NVME_STATUS_ZONE_TOO_MANY_OPEN,
  NVME_STATUS_ZONE_INVALID_STATE_TRANSITION
} NVME_STATUS_COMMAND_SPECIFIC_CODES;

Konstanten

 
NVME_STATUS_COMPLETION_QUEUE_INVALID
Der im Befehl E/A-Übermittlungswarteschlange erstellen angegebene Bezeichner der Vervollständigungswarteschlange ist nicht vorhanden.
NVME_STATUS_INVALID_QUEUE_IDENTIFIER
Gibt die folgenden status für diese Befehle an:

- E/A-Übermittlungswarteschlange erstellen: Fehler beim Erstellen der E/A-Übermittlungswarteschlange aufgrund eines ungültigen Warteschlangenbezeichners, der im Rahmen des Befehls angegeben wurde. Ein ungültiger Warteschlangenbezeichner ist eine, die derzeit verwendet wird, oder eine, die sich außerhalb des vom Controller unterstützten Bereichs befindet.
- E/A-Übermittlungswarteschlange löschen: Der im Befehl angegebene Warteschlangenbezeichner ist ungültig. Dieser Fehler wird auch angezeigt, wenn der bezeichner Admin Abschlusswarteschlange angegeben ist.
- E/A-Vervollständigungswarteschlange erstellen: Fehler beim Erstellen der E/A-Abschlusswarteschlange aufgrund eines ungültigen Warteschlangenbezeichners, der im Rahmen des Befehls angegeben wurde. Ein ungültiger Warteschlangenbezeichner ist eine, die derzeit verwendet wird, oder eine, die sich außerhalb des vom Controller unterstützten Bereichs befindet.
- E/A-Vervollständigungswarteschlange löschen: Der im Befehl angegebene Warteschlangenbezeichner ist ungültig. Dieser Fehler wird auch angezeigt, wenn der bezeichner Admin Abschlusswarteschlange angegeben ist.
NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED
Gibt die folgenden status für die Befehle E/A-Übermittlungswarteschlange erstellen und E/A-Abschlusswarteschlange erstellen an:

Der Host hat versucht, eine E/A-Vervollständigungswarteschlange mit einer ungültigen Anzahl von Einträgen zu erstellen. Beispielsweise ein Wert von 0 oder ein Wert, der das vom Controller im Feld MQES der NVME_CONTROLLER_CAPABILITIES-Struktur angegebene Maximalwert überschreitet.
NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED
Die Anzahl der gleichzeitig ausstehenden Abort-Befehle hat den im Feld ACL der Datenstruktur "Controller identifizieren" angegebenen Grenzwert überschritten.
NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED
Die Anzahl gleichzeitig ausstehender Befehle für die asynchrone Ereignisanforderung wurde überschritten.
NVME_STATUS_INVALID_FIRMWARE_SLOT
Der im Befehl Firmware commit angegebene Firmwareslot ist ungültig oder schreibgeschützt. Dieser Fehler wird angezeigt, wenn der Firmwareslot die unterstützte Anzahl überschreitet.
NVME_STATUS_INVALID_FIRMWARE_IMAGE
Das für die Aktivierung im Befehl Firmwarecommit angegebene Firmwareimage ist ungültig und wird nicht vom Controller geladen.
NVME_STATUS_INVALID_INTERRUPT_VECTOR
Fehler bei der Erstellung der E/A-Vervollständigungswarteschlange aufgrund eines ungültigen Interruptvektors, der im Rahmen des Befehls E/A-Vervollständigungswarteschlange erstellen angegeben wurde.
NVME_STATUS_INVALID_LOG_PAGE
Die protokollseitige Angabe im Befehl Protokollseite abrufen ist ungültig. Diese Fehlerbedingung wird auch zurückgegeben, wenn eine reservierte Protokollseite angefordert wird.
NVME_STATUS_INVALID_FORMAT
Gibt die folgende status für den Befehl Format NVM an: Das angegebene Format ist ungültig.

Dies kann auf verschiedene Bedingungen zurückzuführen sein, einschließlich:

– Angeben einer ungültigen LBA-Formatnummer (Logical Block Address).
– Aktivieren von Schutzinformationen, wenn nicht genügend Metadaten pro LBA vorhanden sind.
– Ungültiger Sicherheitsstatus. Weitere Informationen finden Sie in der TCG Storage Interface Interactions Specification (SIIS).
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET
Gibt die folgende status für den Firmwarecommit-Befehl an:

Der Firmwarecommit war erfolgreich, die Aktivierung des Firmwareimages erfordert jedoch ein herkömmliches Zurücksetzen. Wenn vor einem herkömmlichen Zurücksetzen eine FlR-Zurücksetzung (Function Level Reset) oder eine Controllerzurücksetzung erfolgt, muss der Controller den Betrieb mit dem aktuell ausgeführten Firmwareimage fortsetzen.
NVME_STATUS_INVALID_QUEUE_DELETION
Gibt die folgende status für den Befehl E/A-Abschlusswarteschlange löschen an:

Es ist ungültig, die angegebene E/A-Vervollständigungswarteschlange zu löschen. Der typische Grund für diese Fehlerbedingung ist, dass eine zugeordnete E/A-Übermittlungswarteschlange vorhanden ist, die nicht gelöscht wurde.
NVME_STATUS_FEATURE_ID_NOT_SAVEABLE
Der im Befehl Features festlegen angegebene Featurebezeichner unterstützt keinen sparbaren Wert.
NVME_STATUS_FEATURE_NOT_CHANGEABLE
Der im Befehl Features festlegen angegebene Featurebezeichner wird möglicherweise nicht geändert.
NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFIC
Der im Befehl Features festlegen angegebene Featurebezeichner ist nicht namespacespezifisch. Die Einstellungen für Featurebezeichner gelten für alle Namespaces.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESET
Gibt status für den Befehl Firmwarecommit an.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESET
Gibt die folgende status für den Firmwarecommit-Befehl an:

Der Firmwarecommit war erfolgreich, die Aktivierung des Firmwareimages erfordert jedoch eine ZURÜCKsetzung des NVM-Subsystems. Wenn vor dem Zurücksetzen des NVM-Subsystems ein anderer Zurücksetzungstyp auftritt, muss der Controller den Betrieb mit dem aktuell ausgeführten Firmwareimage fortsetzen.
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION
Gibt die folgende status für den Firmwarecommit-Befehl an:

Das angegebene Bild, wenn es sofort aktiviert wird, würde den unter Identifizieren des Controllers gemeldeten MfTA-Wert (Maximum Time for Firmware Activation, maximale Zeit für die Firmwareaktivierung) überschreiten. Um die Firmware zu aktivieren, muss der Firmwarecommit-Befehl erneut ausgegeben und das Image durch ein Zurücksetzen aktiviert werden.
NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED
Gibt die folgende status für den Firmwarecommit-Befehl an:

Die Aktivierung des angegebenen Images durch den Controller ist aus herstellerspezifischen Gründen untersagt. Der Controller unterstützt beispielsweise keine Herunterrevisionsfirmware.
NVME_STATUS_OVERLAPPING_RANGE
Gibt die folgenden status für diese Befehle an:

- Firmwarecommit: Dieser Fehler wird angezeigt, wenn das Firmwareimage überlappende Bereiche aufweist.
- Features festlegen: Dieser Fehler wird angezeigt, wenn die LBA-Bereichstyp-Datenstruktur überlappende Bereiche aufweist.
- Herunterladen des Firmwareimages: Dieser Fehler wird angezeigt, wenn das Firmwareimage überlappende Bereiche aufweist.
NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY
Gibt die folgende status für den Namespaceverwaltungsbefehl an:

Das Erstellen des Namespace erfordert mehr freien Speicherplatz, als derzeit verfügbar ist. Das Feld Befehlsspezifische Informationen des Fehlerinformationsprotokolls gibt die Gesamtmenge der NVM-Kapazität an, die zum Erstellen des Namespaces in Bytes erforderlich ist.
NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE
Gibt die folgende status für den Namespaceverwaltungsbefehl an:

Die Anzahl der unterstützten Namespaces wurde überschritten.
NVME_STATUS_NAMESPACE_ALREADY_ATTACHED
Gibt die folgende status für den Namespace Attachment-Befehl an:

Der Controller ist bereits an den angegebenen Namespace angefügt.
NVME_STATUS_NAMESPACE_IS_PRIVATE
Gibt die folgende status für den Namespace Attachment-Befehl an:

Der Controller ist nicht an den Namespace angefügt. Die Anforderung zum Anfügen des Controllers konnte nicht abgeschlossen werden, da der Namespace privat ist und bereits an einen Controller angefügt ist.
NVME_STATUS_NAMESPACE_NOT_ATTACHED
Gibt die folgende status für den Namespace Attachment-Befehl an:

Der Controller ist nicht an den Namespace angefügt. Die Anforderung zum Trennen des Controllers konnte nicht abgeschlossen werden.
NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED
NVME_STATUS_CONTROLLER_LIST_INVALID
Gibt die folgende status für den Namespace Attachment-Befehl an:

Die angegebene Controllerliste ist ungültig.
NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESS
Gibt status für den Befehl Selbsttest des Geräts an.
NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITED
Gibt status für den Befehl Firmwarecommit an.
NVME_STATUS_INVALID_CONTROLLER_IDENTIFIER
Gibt status für den Befehl Virtualisierungsverwaltung an.
NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATE
Gibt status für den Virtualisierungsverwaltungsbefehl an.
NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCES
Gibt status für den Befehl Virtualisierungsverwaltung an.
NVME_STATUS_INVALID_RESOURCE_IDENTIFIER
Gibt status für den Befehl Virtualisierungsverwaltung an.
NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILED
Gibt status für den Befehl Streams-Direktive an.
NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES
Gibt die folgenden status für diese Befehle an: Datasetverwaltung, Lesen, Schreiben

Die im Befehl angegebenen Attribute stehen in Konflikt.
NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION
Gibt die folgenden status für diese Befehle an: Compare, Read, Write, Write Zeroes

Die im Befehl angegebenen Einstellungen für Schutzinformationen sind ungültig.
NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE
Gibt die folgenden status für diese Befehle an: Datasetverwaltung, Schreiben, Nicht korrigierbar schreiben, Nullen schreiben

Der Controller kann diese status optional melden, wenn versucht wird, die Zuordnung für einen schreibgeschützten Bereich zu aufheben.

Anforderungen

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