NVME_STATUS_COMMAND_SPECIFIC_CODES (nvme.h) 列舉

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

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

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;

常數

 
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
並行未處理的中止命令數目已超過 [識別控制器] 資料結構的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
指出 Format NVM 命令的下列狀態:指定的格式無效。

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

- 指定無效的邏輯區塊位址 (LBA) 格式號碼。
- 當每個 LBA 沒有足夠的元數據時,啟用保護資訊。
- 安全性狀態無效。 如需詳細資訊,請參閱 SIIS (SIIS) 的TCG儲存介面互動規格
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
指出命名空間管理命令的下列狀態:

建立命名空間所需的可用空間比目前可用空間還多。 [錯誤資訊記錄檔] 的 [命令特定資訊] 位元位會指定建立命名空間所需的 NVM 容量總數,以位元組為單位。
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_STREAM_RESOURCE_ALLOCATION_FAILED
指出 Streams 指示詞命令的狀態。
NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES
指出下列命令的狀態:數據集管理、讀取、寫入

命令中指定的屬性衝突。
NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION
指出下列命令的狀態:比較、讀取、寫入、寫入零

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

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

規格需求

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