错误记录
Windows 硬件错误体系结构 (WHEA) 使用标准错误记录格式来表示所有平台硬件错误。 因此,系统固件、Windows 操作系统和用户模式应用程序可以设计所有基于相同错误记录格式的硬件错误报告和恢复机制。
WHEA 使用的错误记录的格式基于 通用平台错误记录 (CPER) ,如 统一可扩展固件接口 (UEFI) 规范版本 2.2 附录 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 成员中指定。
如果其他硬件错误数据不适合上一列表中的某个节类型或定义的特定于平台的错误记录部分,则使用通用错误记录部分来包含数据。