錯誤記錄
Windows 硬體錯誤架構 (WHEA) 會使用標準錯誤記錄格式來代表所有平台硬體錯誤。 因此,系統韌體、Windows 作業系統和使用者模式應用程式可以設計以相同錯誤記錄格式為基礎的硬體錯誤報告和復原機制。
WHEA 所使用的錯誤記錄格式是以 Common Platform Error Record (CPER) 為基礎,如 Unified Extensible Firmware Interface (UEFI) 規格附錄 N 中所述。
下圖顯示錯誤記錄的一般格式。
錯誤記錄是由錯誤記錄標頭所組成,後面接著一或多個固定長度的錯誤記錄區段描述元。 針對每個錯誤記錄區段描述元,會有一個相關聯的可變長度錯誤記錄區段,其中包含錯誤數據或參考數據。 錯誤記錄必須包含至少一個錯誤記錄區段。
錯誤記錄可以包含額外的緩衝區空間,以便動態新增錯誤記錄區段和區段描述元。 額外的緩衝區空間也可以用來動態增加現有錯誤記錄區段的大小。
錯誤記錄是由 WHEA_ERROR_RECORD 結構描述,錯誤記錄標頭是由 WHEA_ERROR_RECORD_HEADER 結構描述,而錯誤記錄區段描述項則分別由 WHEA_ERROR_RECORD_SECTION_DESCRIPTOR 結構描述。
每個錯誤記錄區段可以是下列其中一個區段類型:
硬體錯誤封包
此錯誤記錄區段包含報告錯誤之低階硬體錯誤處理程式 (LLHEH) 傳遞給作業系統的硬體錯誤封包。 本節中包含的數據是由 WHEA_ERROR_PACKET 結構所描述。
泛型處理器錯誤
這個錯誤記錄區段包含不是特定處理器架構專屬的處理器錯誤數據。 本節中包含的數據是由 WHEA_PROCESSOR_GENERIC_ERROR_SECTION 結構所描述。
x86/x64 處理器錯誤
這個錯誤記錄區段包含 x86 或 x64 處理器架構特有的處理器錯誤數據。 本節中包含的數據是由 WHEA_XPF_PROCESSOR_ERROR_SECTION 結構所描述。 下圖顯示包含處理器錯誤數據的數據結構如何儲存在 VariableInfo 成員中。
Itanium 處理器錯誤
這個錯誤記錄區段包含Itanium處理器架構特有的處理器錯誤數據。 如需此錯誤記錄中所含錯誤資料格式的詳細資訊,請參閱 Intel Itanium 處理器系列系統抽象層規格。
Itanium 處理器韌體錯誤記錄參考
此錯誤記錄區段包含專屬於Itanium處理器架構的韌體錯誤記錄參考。 這個錯誤記錄區段是由 WHEA_FIRMWARE_ERROR_RECORD_REFERENCE 結構所描述。
平臺記憶體錯誤
此錯誤記錄區段包含平臺記憶體錯誤數據。 本節中包含的數據是由 WHEA_MEMORY_ERROR_SECTION 結構所描述。
不可遮罩的中斷
此錯誤記錄區段包含無法遮罩的中斷(NMI)資料。 本節中包含的數據是由 WHEA_NMI_ERROR_SECTION 結構所描述。
PCI Express 錯誤
此錯誤記錄區段包含PCI Express錯誤數據。 本節中包含的數據會由 WHEA_PCIEXPRESS_ERROR_SECTION 結構描述。
PCI/PCI-X 總線錯誤
此錯誤記錄區段包含PCI/PCI-X 總線錯誤數據。 本節中包含的數據會由 WHEA_PCIXBUS_ERROR_SECTION 結構描述。
PCI/PCI-X 裝置錯誤
此錯誤記錄區段包含PCI/PCI-X 裝置錯誤數據。 本節中包含的數據是由 WHEA_PCIXDEVICE_ERROR_SECTION 結構所描述。
針對不符合上一個清單中的其中一個區段類型的其他硬體錯誤數據,可以定義平臺特定的錯誤記錄區段來包含數據。 針對所定義的每種平臺特定錯誤記錄區段類型,必須定義識別錯誤記錄區段類型的對應 GUID。 這個 GUID 是在描述該錯誤記錄區段類型之任何 WHEA_ERROR_RECORD_SECTION_DESCRIPTOR 結構的 SectionType 中指定 成員。
如果有其他硬體錯誤數據不符合前面清單中的任何一種區段類型,或不符合定義的平臺特定錯誤記錄區段,將使用通用錯誤記錄區段來包含這些數據。