Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Contains values indicating status that is specific to a particular command.
These status codes are of the NVME_STATUS_TYPE_COMMAND_SPECIFIC Status Code Type and are posted by the controller in a Completion Queue entry when a command is completed.
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;
Constants
NVME_STATUS_COMPLETION_QUEUE_INVALIDThe Completion Queue identifier specified in the Create I/O Submission Queue command does not exist. |
NVME_STATUS_INVALID_QUEUE_IDENTIFIERIndicates the following status for these commands: - Create I/O Submission Queue: The creation of the I/O Submission Queue failed due to an invalid queue identifier specified as part of the command. An invalid queue identifier is one that is currently in use or one that is outside the range supported by the controller. - Delete I/O Submission Queue: The queue identifier specified in the command is invalid. This error is also indicated if the Admin Completion Queue identifier is specified. - Create I/O Completion Queue: The creation of the I/O Completion Queue failed due to an invalid queue identifier specified as part of the command. An invalid queue identifier is one that is currently in use or one that is outside the range supported by the controller. - Delete I/O Completion Queue: The queue identifier specified in the command is invalid. This error is also indicated if the Admin Completion Queue identifier is specified. |
NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDEDIndicates the following status for the Create I/O Submission Queue and Create I/O Completion Queue commands: The host attempted to create an I/O Completion Queue with an invalid number of entries. For example, a value of zero or a value which exceeds the maximum supported by the controller specified in the MQES field of the NVME_CONTROLLER_CAPABILITIES structure. |
NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDEDThe number of concurrently outstanding Abort commands has exceeded the limit indicated in the ACL field of the Identify Controller data structure. |
NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDEDThe number of concurrently outstanding Asynchronous Event Request commands has been exceeded. |
NVME_STATUS_INVALID_FIRMWARE_SLOTThe firmware slot indicated in the Firmware Commit command is invalid or read only. This error is indicated if the firmware slot exceeds the number supported. |
NVME_STATUS_INVALID_FIRMWARE_IMAGEThe firmware image specified for activation in the Firmware Commit command is invalid and not loaded by the controller. |
NVME_STATUS_INVALID_INTERRUPT_VECTORThe creation of the I/O Completion Queue failed due to an invalid interrupt vector specified as part of the Create I/O Completion Queue command. |
NVME_STATUS_INVALID_LOG_PAGEThe log page indicated in the Get Log Page command is invalid. This error condition is also returned if a reserved log page is requested. |
NVME_STATUS_INVALID_FORMATIndicates the following status for the Format NVM command: The format specified is invalid. This may be due to various conditions, including: - Specifying an invalid Logical Block Address (LBA) Format number. - Enabling protection information when there is not sufficient metadata per LBA. - Invalid security state. For more information, see the TCG Storage Interface Interactions Specification (SIIS). |
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESETIndicates the following status for the Firmware Commit command: The firmware commit was successful, however, activation of the firmware image requires a conventional reset. If a Function Level Reset (FLR) or controller reset occurs prior to a conventional reset, the controller shall continue operation with the currently executing firmware image. |
NVME_STATUS_INVALID_QUEUE_DELETIONIndicates the following status for the Delete I/O Completion Queue command: It is invalid to delete the Specified I/O Completion Queue. The typical reason for this error condition is that there is an associated I/O Submission Queue that has not been deleted. |
NVME_STATUS_FEATURE_ID_NOT_SAVEABLEThe Feature Identifier specified in the Set Features command does not support a saveable value. |
NVME_STATUS_FEATURE_NOT_CHANGEABLEThe Feature Identifier specified in the Set Features command may not be changed. |
NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFICThe Feature Identifier specified in the Set Features command is not namespace specific. The Feature Identifier settings apply across all namespaces. |
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESETIndicates status for the Firmware Commit command. |
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESETIndicates the following status for the Firmware Commit command: The firmware commit was successful, however, activation of the firmware image requires an NVM Subsystem Reset. If any other type of reset occurs prior to an NVM Subsystem Reset, the controller shall continue operation with the currently executing firmware image. |
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATIONIndicates the following status for the Firmware Commit command: The image specified if activated immediately would exceed the Maximum Time for Firmware Activation (MFTA) value reported in Identify Controller. To activate the firmware, the Firmware Commit command needs to be reissued and the image activated using a reset. |
NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITEDIndicates the following status for the Firmware Commit command: The specified image is being prohibited from activation by the controller for vendor specific reasons. For example, the controller does not support down revision firmware. |
NVME_STATUS_OVERLAPPING_RANGEIndicates the following status for these commands: - Firmware Commit: This error is indicated if the firmware image has overlapping ranges. - Set Features: This error is indicated if the LBA Range Type data structure has overlapping ranges. - Firmware Image Download: This error is indicated if the firmware image has overlapping ranges. |
NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITYIndicates the following status for the Namespace Management command: Creating the namespace requires more free space than is currently available. The Command Specific Information field of the Error Information Log specifies the total amount of NVM capacity required to create the namespace in bytes. |
NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLEIndicates the following status for the Namespace Management command: The number of namespaces supported has been exceeded. |
NVME_STATUS_NAMESPACE_ALREADY_ATTACHEDIndicates the following status for the Namespace Attachment command: The controller is already attached to the namespace specified. |
NVME_STATUS_NAMESPACE_IS_PRIVATEIndicates the following status for the Namespace Attachment command: The controller is not attached to the namespace. The request to attach the controller could not be completed because the namespace is private and is already attached to one controller. |
NVME_STATUS_NAMESPACE_NOT_ATTACHEDIndicates the following status for the Namespace Attachment command: The controller is not attached to the namespace. The request to detach the controller could not be completed. |
NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED |
NVME_STATUS_CONTROLLER_LIST_INVALIDIndicates the following status for the Namespace Attachment command: The controller list provided is invalid. |
NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESSIndicates status for the Device Self-test command. |
NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITEDIndicates status for the Firmware Commit command. |
NVME_STATUS_INVALID_CONTROLLER_IDENTIFIERIndicates status for the Virtualization Management command. |
NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATEIndicates status for the Virtualization Management command |
NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCESIndicates status for the Virtualization Management command. |
NVME_STATUS_INVALID_RESOURCE_IDENTIFIERIndicates status for the Virtualization Management command. |
NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILEDIndicates status for the Streams Directive command. |
NVME_STATUS_NVM_CONFLICTING_ATTRIBUTESIndicates the following status for these commands: Dataset Management, Read, Write The attributes specified in the command are conflicting. |
NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATIONIndicates the following status for these commands: Compare, Read, Write, Write Zeroes The Protection Information settings specified in the command are invalid. |
NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGEIndicates the following status for these commands: Dataset Management, Write, Write Uncorrectable, Write Zeroes The controller may optionally report this status if a deallocate is attempted for a read only range. |
Requirements
| Requirement | Value |
|---|---|
| Minimum supported client | Windows 10 |
| Header | nvme.h |