NVME_ERROR_INFO_LOG 結構 (nvme.h)
包含欄位,指定 [錯誤資訊記錄] 頁面中的資訊。
[錯誤資訊] 記錄頁包含命令的擴充錯誤資訊,該命令已完成錯誤,或回報了不是特定命令特定的錯誤。 當 [更多 (M) ] 設定1
為 [完成佇列專案] 欄位中的 [完成佇列專案] 時,會提供擴充錯誤資訊,而命令與錯誤一起完成,或當做具有錯誤狀態類型的異步事件之一部分。
[錯誤資訊記錄] 頁面是控制器的全域頁面。 此錯誤記錄檔可能會傳回最後 n 個錯誤。 如果主機軟體指定 n 個錯誤記錄檔大小的數據傳輸,則會傳回最後 n 個錯誤的錯誤記錄檔。 專案的排序是根據發生錯誤的時間,並傳回最新的錯誤做為第一個記錄檔。
[錯誤資訊記錄] 頁面是一組 64 個字節專案;識別 控制器 數據結構中會指出支援的項目數目。
這個結構是由 [取得記錄頁] 命令傳回。 如需詳細資訊,請參閱 NVME_CDW10_GET_LOG_PAGE。
語法
typedef struct {
ULONGLONG ErrorCount;
USHORT SQID;
USHORT CMDID;
NVME_COMMAND_STATUS Status;
struct {
USHORT Byte : 8;
USHORT Bit : 3;
USHORT Reserved : 5;
} ParameterErrorLocation;
ULONGLONG Lba;
ULONG NameSpace;
UCHAR VendorInfoAvailable;
UCHAR Reserved0[3];
ULONGLONG CommandSpecificInfo;
UCHAR Reserved1[24];
} NVME_ERROR_INFO_LOG, *PNVME_ERROR_INFO_LOG;
成員
ErrorCount
指出此錯誤的唯一標識碼的64位遞增錯誤計數。
錯誤計數會從 開始 1h
,會針對每個唯一的錯誤記錄專案遞增,並跨關閉電源條件保留。 的值 0h
表示無效的專案;當遺失專案或控制器支援的最大項目數目少時,可能會使用這個值。
SQID
指出與錯誤資訊相關聯之命令的提交佇列標識碼 (SQID) 。 如果錯誤不是特定命令特有的,則此欄位會設定為 FFFFh
。
CMDID
指出與錯誤相關聯之命令的 CMDID (CMDID) 。 如果錯誤不是特定命令特有的,則這會設定為 FFFFh
。
Status
指出已完成之命令的狀態欄位。
狀態欄位位於位 01:15。 位 0 對應至針對 命令張貼的階段標記 (P) 。 如果錯誤不是特定命令特有的,則此欄位會報告最適用的狀態值。
ParameterErrorLocation
ParameterErrorLocation 結構,其中包含欄位,這些欄位會指出錯誤與錯誤相關聯的 Byte 和 Bit。如果適用的話。
如果參數跨越多個字節或位,位置會指出參數的第一個字節和位。 如果錯誤不是特定命令特有的,此欄位會設定為 FFFFh
。
ParameterErrorLocation.Byte
表示命令中包含錯誤的 Byte。
這個值包含在 ParameterErrorLocation 結構的位 0:7 中。 有效值為 0 到 63。
ParameterErrorLocation.Bit
表示命令中包含錯誤的 Bit。
這個值包含在 ParameterErrorLocation 結構的位 8:10 中。 有效值為 0 到 7。
ParameterErrorLocation.Reserved
會保留 ParameterErrorLocation 結構的位 11:15。
Lba
指出發生錯誤狀況的第一個邏輯區塊位址 (LBA) ,如果適用的話。
NameSpace
指出如果適用,與錯誤相關聯的命名空間。
VendorInfoAvailable
當有其他廠商特定的錯誤資訊可用時,此欄位會提供與該頁面相關聯的記錄頁識別碼。
的值 00h
表示沒有其他資訊可供使用。 有效值介於 到 80h
FFh
的範圍內。
Reserved0[3]
保留欄位。
CommandSpecificInfo
包含命令特定資訊。 如果使用,命令定義會指定傳回的資訊。
Reserved1[24]
保留欄位。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 |
標頭 | nvme.h |