NVME_STATUS_GENERIC_COMMAND_CODES列舉 (nvme.h)
包含值,指出與命令相關聯的狀態,該命令是跨許多不同類型的命令泛型。
這些狀態代碼屬於 NVME_STATUS_TYPE_GENERIC_COMMAND狀態代碼類型 ,而且當命令完成時,控制器會在 完成佇列專案中 張貼。 程序代碼表示完成佇列專案中的 Command 和提交佇列標識碼所指定的命令已完成。
Syntax
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 命令已中止,因為找不到隨附的 fused 命令作為後續的提交佇列專案。 |
NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT 命名空間或該命名空間的格式無效。 |
NVME_STATUS_COMMAND_SEQUENCE_ERROR 命令因多重命令序列中的通訊協議違規而中止。 例如,違反 TCG 記憶體同步介面通訊協定中的安全性傳送和安全性接收排序規則。 |
NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR 此命令包含無效的 SGL Last Segment 或 SGL Segment 描述元。 當 SGL Last Segment 描述元指向的 SGL 區段包含 SGL 區段描述元或 SGL Last Segment 描述元或 SGL 區段描述元時,就可能發生此情況。 當 SGL Last Segment 描述項包含無效長度 (例如,長度為零或 16 個) 的倍數時,就可能發生此情況。 |
NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR 區段的最後一個描述元或 SGL 區段描述項在區段的最後一個描述元以外的位置中,會根據指定的長度。 |
NVME_STATUS_DATA_SGL_LENGTH_INVALID 如果 Data SGL 的長度太短,就可能發生此情況。 如果 Data 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 定時器已過期。 |
NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID 指定的 Keep Alive Timeout 值無效。 |
NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT 命令已中止,因為保留取得動作 (RACQA) 設定為 010b (Preempt 和 Abort) 。 |
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 執行 命令會導致超過命名空間的容量。 當命名空間使用率超過命名空間容量時,就會發生此錯誤。 |
NVME_STATUS_NVM_NAMESPACE_NOT_READY 命名空間尚未準備好存取。 [不要重試] 位指出稍後是否重新發出命令可能會成功。 |
NVME_STATUS_NVM_RESERVATION_CONFLICT 命令已中止,因為與存取命名空間上保留的保留發生衝突。 |
NVME_STATUS_FORMAT_IN_PROGRESS 命名空間目前正在格式化。 [不要重試] 位會清除為 '0',表示如果重新提交命令,命令可能會成功。 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 |
標頭 | nvme.h |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應