NVME_STATUS_GENERIC_COMMAND_CODES列舉 (nvme.h)
包含值,指出與命令相關聯的狀態,該命令在許多不同的命令類型之間是泛型的。
這些狀態代碼屬於 NVME_STATUS_TYPE_GENERIC_COMMAND狀態代碼類型,而且會在命令完成時,由控制器在 完成佇列 專案中張貼。 這些代碼表示已完成完成佇列專案中命令和提交佇列標識碼所指定的命令。
語法
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;
常數
NVME_STATUS_SUCCESS_COMPLETION 命令已順利完成。 |
NVME_STATUS_INVALID_COMMAND_OPCODE 相關聯的命令 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 命令已中止,因為已收到提交佇列的刪除 I/O 提交佇列要求,命令已提交至該佇列。 |
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 命令因為多重命令順序中的通訊協議違規而中止。 例如,違反 TCG 記憶體同步介面通訊協定中的安全性傳送和安全性接收排序規則。 |
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR 此命令包含無效的 SGL Last Segment 或 SGL 區段描述元。 當 SGL Last Segment 描述元所指向的 SGL 區段包含 SGL 區段描述元或 SGL Last Segment 描述元或 SGL 區段描述元時,就可能發生此情況。 當 SGL Last Segment 描述元包含無效的長度時,可能會發生這種情況(例如,長度為零或不是 16 倍數的長度)。 |
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR 在區段的最後一個描述元以外的位置中,有 SGL Last Segment 描述元或 SGL 區段描述元,以指定的長度為基礎。 |
NVME_STATUS_DATA_SGL_LENGTH_INVALID 如果 Data SGL 的長度太短,就可能會發生這種情況。 如果數據 SGL 的長度太長,且控制者不支援 SGL 傳輸的時間超過要傳輸的數據量,如 識別控制器 (NVME_IDENTIFY_CONTROLLER_DATA) 數據結構中的 SGL 支援 (SGLS) 欄位所指示。 |
NVME_STATUS_METADATA_SGL_LENGTH_INVALID 如果元數據 SGL 的長度太短,就可能會發生這種情況。 如果元數據 SGL 的長度太長,且控制器不支援 SGL 傳輸的時間長度超過要傳輸的數據量,如 識別控制器 (NVME_IDENTIFY_CONTROLLER_DATA) 數據結構中的 SGL 支援 (SGLS) 字段中所指出。 |
NVME_STATUS_SGL_DESCR_TYPE_INVALID SGL 描述元的類型是控制器不支援的類型。 |
NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER 控制器不支持嘗試使用控制器記憶體緩衝區。 |
NVME_STATUS_PRP_OFFSET_INVALID PRP 專案的 Offset 字段無效。 當第一個項目之後有非零位移的 PRP 專案時,可能會發生這種情況。 |
NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED 指定的長度超過不可部分完成的寫入單位大小。 |
NVME_STATUS_OPERATION_DENIED 由於缺乏訪問許可權,命令遭到拒絕。 |
NVME_STATUS_SGL_OFFSET_INVALID 描述元中指定的位移無效。 |
NVME_STATUS_RESERVED 保留。 |
NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT NVM 子系統偵測到在不同控制器上同時使用 64 位和 128 位主機識別碼值。 |
NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED Keep Alive Timer 已過期。 |
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID 指定的 [保持運作逾時] 值無效。 |
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT 此命令已中止,因為保留取得動作 (RACQA) 設定為 010b (Preempt 和 Abort) 的 Reservation Acquire 命令。 |
NVME_STATUS_SANITIZE_FAILED 最新的清理作業失敗,且尚未成功完成復原動作。 |
NVME_STATUS_SANITIZE_IN_PROGRESS 正在清理作業時,禁止要求函式(例如命令)。 |
NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID SGLData 區塊描述元的位址對齊或長度粒度無效。 |
NVME_STATUS_NVM_LBA_OUT_OF_RANGE 命令會參考超過命名空間大小的 LBA。 |
NVME_STATUS_NVM_CAPACITY_EXCEEDED 命令的執行已導致超過命名空間的容量。 當Namespace使用率超過Namespace容量時,就會發生此錯誤。 |
NVME_STATUS_NVM_NAMESPACE_NOT_READY 命名空間尚未準備好存取。 「不要重試」位指出稍後是否重新發出命令是否可能成功。 |
NVME_STATUS_NVM_RESERVATION_CONFLICT 命令已中止,因為與存取命名空間上保留的保留發生衝突。 |
NVME_STATUS_FORMAT_IN_PROGRESS 命名空間目前正在格式化。 [不要重試] 位會清除為 '0',表示如果重新提交命令,命令可能會成功。 |
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 |
標頭 | nvme.h |