共用方式為


NVME_STATUS_COMMAND_SPECIFIC_CODES列舉 (nvme.h)

包含值,指出特定命令特有的狀態。

這些狀態代碼屬於 NVME_STATUS_TYPE_COMMAND_SPECIFIC狀態代碼類型,並在命令完成時,由控制器在 完成佇列 專案中張貼。

語法

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;

常數

 
NVME_STATUS_COMPLETION_QUEUE_INVALID
建立 I/O 提交佇列命令中指定的完成佇列標識碼不存在。
NVME_STATUS_INVALID_QUEUE_IDENTIFIER
指出下列命令的狀態:

- 建立 I/O 提交佇列:建立 I/O 提交佇列失敗,因為命令中指定的佇列標識碼無效。 無效的佇列標識碼是目前正在使用的佇列標識碼,或是控制器所支援範圍以外的佇列標識碼。
- 刪除 I/O 提交佇列:命令中指定的佇列標識碼無效。 如果指定管理員完成佇列標識碼,也會指出此錯誤。
- 建立 I/O 完成佇列:建立 I/O 完成佇列失敗,因為命令中指定的佇列標識碼無效。 無效的佇列標識碼是目前正在使用的佇列標識碼,或是控制器所支援範圍以外的佇列標識碼。
- 刪除 I/O 完成佇列:命令中指定的佇列標識碼無效。 如果指定管理員完成佇列標識碼,也會指出此錯誤。
NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED
指出 [建立 I/O 提交佇列] 和 [建立 I/O 完成佇列] 命令的下列狀態:

主機嘗試建立 I/O 完成佇列,且項目數目無效。 例如,零的值或超過 NVME_CONTROLLER_CAPABILITIES 結構之 MQES 欄位中所指定控制器所支援最大值的值。
NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED
同時未處理的 Abort 命令數目已超過 識別控制器數據結構ACL 字段中所指示的限制。
NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED
已超過並行未處理的異步事件要求命令數目。
NVME_STATUS_INVALID_FIRMWARE_SLOT
韌體認可命令中指定的韌體位置無效或只讀。 如果韌體位置超過所支持的數目,就會指出此錯誤。
NVME_STATUS_INVALID_FIRMWARE_IMAGE
在韌體認可命令中為啟用指定的韌體映像無效,且控制器不會載入。
NVME_STATUS_INVALID_INTERRUPT_VECTOR
I/O 完成佇列的建立失敗,因為指定為建立 I/O 完成佇列命令一部分的中斷向量無效。
NVME_STATUS_INVALID_LOG_PAGE
[取得記錄頁] 命令中所指出的記錄頁無效。 如果要求保留的記錄頁面,也會傳回此錯誤狀況。
NVME_STATUS_INVALID_FORMAT
指出 [格式 NVM] 命令的下列狀態:指定的格式無效。

這可能是因為各種條件,包括:

- 指定無效的邏輯區塊位址 (LBA) 格式號碼。
- 在每個 LBA 沒有足夠的元數據時啟用保護資訊。
- 安全性狀態無效。 如需詳細資訊,請參閱 TCG 儲存介面互動規格 (SIIS)
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET
指出韌體認可命令的下列狀態:

不過,韌體認可成功,需要傳統重設才能啟用韌體映像。 如果在傳統重設之前發生函式層級重設(FLR)或控制器重設,控制器應繼續操作目前執行的韌體映像。
NVME_STATUS_INVALID_QUEUE_DELETION
指出刪除 I/O 完成佇列命令的下列狀態:

刪除指定的 I/O 完成佇列無效。 此錯誤狀況的一般原因是有尚未刪除的相關聯 I/O 提交佇列。
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
指出韌體認可命令的下列狀態:

不過,韌體認可成功,韌體映射的啟用需要 NVM 子系統重設。 如果在 NVM 子系統重設之前發生任何其他類型的重設,控制器應繼續操作目前執行的韌體映射。
NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION
指出韌體認可命令的下列狀態:

如果立即啟動,指定的映射將會超過識別控制器中所報告的韌體啟用 (MFTA) 值上限。 若要啟用韌體,必須重新發出韌體認可命令,並使用重設啟用映像。
NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED
指出韌體認可命令的下列狀態:

由於廠商的特定原因,控制器禁止啟用指定的映像。 例如,控制器不支援向下修訂韌體。
NVME_STATUS_OVERLAPPING_RANGE
指出下列命令的狀態:

- 韌體認可:如果韌體映射有重疊範圍,就會指出此錯誤。
- 設定功能:如果 LBA 範圍類型數據結構有重疊的範圍,就會指出此錯誤。
- 韌體映射下載:如果韌體映射有重疊範圍,就會指出此錯誤。
NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY
指出 Namespace Management 命令的下列狀態:

建立命名空間需要比目前可用的更多可用空間。 錯誤資訊記錄檔的 [命令特定資訊] 位元位會指定建立以位元組為單位的命名空間所需的 NVM 容量總數。
NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE
指出 Namespace Management 命令的下列狀態:

已超過支援的命名空間數目。
NVME_STATUS_NAMESPACE_ALREADY_ATTACHED
指出 Namespace Attachment 命令的下列狀態:

控制器已經附加至指定的命名空間。
NVME_STATUS_NAMESPACE_IS_PRIVATE
指出 Namespace Attachment 命令的下列狀態:

控制器未附加至命名空間。 無法完成附加控制器的要求,因為命名空間是私用的,而且已經附加至一個控制器。
NVME_STATUS_NAMESPACE_NOT_ATTACHED
指出 Namespace Attachment 命令的下列狀態:

控制器未附加至命名空間。 無法完成中斷連結控制器的要求。
NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED
NVME_STATUS_CONTROLLER_LIST_INVALID
指出 Namespace Attachment 命令的下列狀態:

提供的控制器清單無效。
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_STREAM_RESOURCE_ALLOCATION_FAILED
指出 Streams 指示詞命令的狀態。
NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES
指出下列命令的狀態:數據集管理、讀取、寫入

命令中指定的屬性會衝突。
NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION
指出下列命令的狀態:Compare、Read、Write、Write、Write Zeroes

命令中指定的 [保護資訊] 設定無效。
NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE
指出下列命令的狀態:數據集管理、寫入、寫入不可更正、寫入零

如果嘗試取消分配唯讀範圍,控制器可能會選擇性地報告此狀態。

要求

要求 價值
最低支援的用戶端 Windows 10
標頭 nvme.h