PFA(预测性故障分析)由 WHEA 执行

从 Windows 7 开始,Windows 硬件错误体系结构(WHEA)支持错误更正代码(ECC)内存的预测故障分析(PFA)。

重要 平台特定的硬件错误驱动程序(PSHED)插件可以对 ECC 内存执行预测性故障分析(PFA),而不是由 WHEA 执行。 如果插件执行 PFA,它必须遵循 PSHED 插件执行的 PFA 中所述的步骤。 插件不得遵循本主题中所述的步骤。

发生 ECC 内存错误时,WHEA 将执行以下步骤:

  1. 低级别硬件错误处理程序LLHEH) 会通知存在内存错误条件。

  2. LLHEH 从错误源检索内存错误信息,并使用错误数据填充硬件错误数据包。 此数据包的格式设置为 WHEA_ERROR_PACKET 结构。

  3. LLHEH 调用 PSHED 以检索任何特定于平台的硬件错误信息。 如果已安装并注册了 PSHED 插件以检索有关错误的信息,PSHED 将调用 PSHED 插件,以便插件可以修改返回给 LLHEH 的错误信息。

  4. LLHEH 调用 Windows作系统内核,并向其传递错误数据包。

  5. Windows 内核会创建一条 错误记录 ,并将其添加到从 LLHEH 收到的错误数据包中的信息。 此外,Windows 内核会将有关错误的其他信息(例如错误源、错误的严重性以及错误发生的次数)添加到错误记录。

  6. Windows 内核调用 PSHED,以允许 PSHED 将节添加到错误记录。

  7. 如果安装了 PSHED 插件并注册以检索有关错误的信息,PSHED 将调用 PSHED 插件,以便插件可以修改错误记录中的信息。

    注意如果 PSHED 插件未执行 PFA,则它不得在WHEA_ERROR_PACKET结构的WHEA_ERROR_PACKET_FLAGS成员中设置 PlatformPfaControl 位。

  8. 如果启用了 PFA,WHEA 在 ECC 内存页上执行 PFA。 有关此过程的详细信息,请参阅 WHEA 如何在 ECC 内存上执行 PFA

  9. Windows 内核生成 ETW 事件,并在系统事件日志中记录错误信息。