WHEA 如何在 ECC 内存上执行 PFA
从 Windows 7 开始,Windows 硬件错误体系结构 (WHEA) 支持预测故障分析 (PFA) ,用于纠错码 (ECC) 内存。
仅当以下情况成立时,WHEA 才对 ECC 内存页执行 PFA:
注册表值 MemPfaDisable 未设置为 1。
特定于平台的硬件错误驱动程序 (PSHED) 插件之前未将 WHEA_ERROR_PACKET 结构的 WHEA_ERROR_PACKET_FLAGS 成员中的 PlatformPfaControl 位设置为 1。 如果插件正在执行 PFA,则它会设置此位。 有关此插件如何执行 PFA 的详细信息,请参阅 PFA 由 PSHED 插件执行。
当内存页上发生 ECC 内存错误时,WHEA 会按照以下步骤在 ECC 内存页上执行 PFA:
如果 WHEA 当前未监视 ECC 内存页,则 WHEA 会将该页添加到其监视数据库,并清除新条目的错误计数和时钟周期计数。
注意 当 ECC 内存页的时钟周期计数超过 MemPfaTimeout 注册表值时,WHEA 将停止监视该页。 发生这种情况时,WHEA 会从其监视数据库中删除条目。
WHEA 递增 ECC 内存页的错误计数。
如果错误计数超过 MemPfaThreshold 注册表值,WHEA 将首先调用系统内存管理器,使 ECC 内存页脱机。
注意 调用系统内存管理器时,无法保证 ECC 内存页实际上会脱机。
然后,WHEA 将内存页添加到系统存储中的启动配置数据 (BCD) 。 这可以防止在下一次系统重启后使用内存页。
注意 如果注册表值 DisableOffline 设置为非零值,则 WHEA 不会使硬件组件(如 ECC 内存页)脱机。 此外,如果注册表值 MemPersistOffline 设置为 0,WHEA 不会将 ECC 内存页添加到 BCD 存储。
有关 WHEA 的 PFA 注册表值的详细信息,请参阅 WHEA 策略设置。
有关系统内存管理器的详细信息,请参阅 Windows SDK 文档中的 内存管理 。