由 WHEA 执行的 PFA
从 Windows 7 开始,Windows 硬件错误体系结构 (WHEA) 支持预测故障分析 (PFA) ,用于纠错码 (ECC) 内存。
重要特定于平台的硬件错误驱动程序 (PSHED) 插件可以在 ECC 内存而不是 WHEA 上执行 PFA。 如果插件执行 PFA,则必须遵循 PSHED 插件执行的 PFA 中所述的步骤。 插件不得遵循本主题中所述的步骤。
发生 ECC 内存错误时,WHEA 将执行以下步骤:
低 级别硬件错误处理程序 (LLHEH) 收到内存错误情况的通知。
LLHEH 从错误源检索内存错误信息,并使用错误数据填充硬件错误数据包。 此数据包的格式设置为 WHEA_ERROR_PACKET 结构。
LLHEH 调用 PSHED 以检索任何特定于平台的硬件错误信息。 如果已安装 PSHED 插件并注册以检索有关错误的信息,则 PSHED 将调用 PSHED 插件,以便该插件可以修改返回给 LLHEH 的错误信息。
LLHEH 调用 Windows 操作系统内核,向其传递错误数据包。
Windows 内核创建 错误记录 ,并将从 LLHEH 收到的错误数据包中的信息添加到其中。 此外,Windows 内核还添加了有关错误 (的其他信息,例如错误源、错误的严重性以及错误) 错误发生的次数。
Windows 内核调用 PSHED,以允许 PSHED 向错误记录添加节。
如果已安装 PSHED 插件并注册以检索有关错误的信息,则 PSHED 将调用 PSHED 插件,以便插件可以修改错误记录中的信息。
注意如果 PSHED 插件未执行 PFA,则不得在 WHEA_ERROR_PACKET 结构的 WHEA_ERROR_PACKET_FLAGS 成员中设置 PlatformPfaControl 位。
如果启用了 PFA,WHEA 在 ECC 内存页上执行 PFA。 有关此过程的详细信息,请参阅 WHEA 如何对 ECC 内存执行 PFA。
Windows 内核生成 ETW 事件,并将错误信息记录在系统事件日志中。