NVME_COMMAND_STATUS union (nvme.h)
包含命令狀態的相關信息。
這個結構用於NVME_COMPLETION_ENTRY的 [狀態] 欄位,以及NVME_ERROR_INFO_LOG的 [狀態] 欄位中,用來指出已完成之命令的狀態。
語法
typedef union {
struct {
USHORT P : 1;
USHORT SC : 8;
USHORT SCT : 3;
USHORT Reserved : 2;
USHORT M : 1;
USHORT DNR : 1;
} DUMMYSTRUCTNAME;
USHORT AsUshort;
} NVME_COMMAND_STATUS, *PNVME_COMMAND_STATUS;
成員
DUMMYSTRUCTNAME
DUMMYSTRUCTNAME.P
指出完成佇列專案是否為新專案。
所有完成佇列專案的階段標記 (P) 值,應該先由主機軟體初始化為 '0',再將 NVME_CONTROLLER_CONFIGURATION 的 EN 字段設定為 1
。
當控制器將專案放在完成佇列中時,它會反轉階段標記,讓主機軟體識別新的專案。 具體而言,針對 EN 設定 1
為 之後的第一組完成佇列專案,所有階段標記都會在張貼時設定為 1
。 針對第二組完成佇列專案,當控制器包裝在完成佇列頂端時,所有階段卷標都會在張貼時清除 0
。 階段標記的值會在每一個通過完成佇列時反轉。
DUMMYSTRUCTNAME.SC
指出狀態代碼,識別命令的任何錯誤或狀態資訊。
DUMMYSTRUCTNAME.SCT
NVME_STATUS_TYPES值,指出控制器傳回的狀態類型。
DUMMYSTRUCTNAME.Reserved
DUMMYSTRUCTNAME.M
指出命令是否有其他狀態資訊。
當這個值設定為 1
時,此命令會有更多狀態資訊做為可以使用 [取得記錄頁] 命令擷取的錯誤 資訊記錄 檔的一部分。
當這個值清除為 0
時,此命令沒有其他狀態資訊。
DUMMYSTRUCTNAME.DNR
指出如果命令重新提交,命令是否成功。
當此值設定為 1
時,表示如果重新提交相同的命令,則預期會失敗。
清除這個值 0
時,它會指出重試時,相同的命令可能會成功。
如果命令因為時間有限的錯誤復原而中止,則應該清除此欄位。0
如果清除 SCT 和 SC 欄位 0h
,則應該將此欄位清除為 0
。
AsUshort
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 |
標頭 | nvme.h |