错误检查 0x19:BAD_POOL_HEADER

BAD_POOL_HEADER 错误检查的值为 0x00000019。 这表示池标头已损坏。

重要

这篇文章适合程序员阅读。 如果你是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答

BAD_POOL_HEADER 参数

参数 1 表示违规类型。 其他参数的含义取决于参数 1 的值。

参数 1 参数 2 参数 3 参数 4 错误消息的原因

0x2

正在检查的池条目

池块的大小

0

特殊池模式检查失败。

(所有者可能损坏了池块。)

0x3

正在检查的池条目

读回 flink 自由列表值

读回 blink 自由列表值

池自由列表已损坏。

(在正常运行的列表中,参数 2、3 和 4 的值应相同。)

0x5

其中一个池条目

Reserved

另一个池条目

一对相邻池条目具有相互矛盾的标头。 其中至少有一个损坏。

0x6

一个错误计算的条目

Reserved

导致错误计算的错误条目

池块标头以前的大小太大。

0x7

0

保留

错误池条目

池块标头大小已损坏。

0x8

0

保留

错误池条目

池块标头大小为零。

0x9

一个错误计算的条目

Reserved

导致错误计算的错误条目

池块标头大小已损坏(太大)。

0xA

应找到的池条目

Reserved

应包含池条目的页面的虚拟地址

池块标头大小已损坏。

0xD、0xE、0xF、0x23、0x24、0x25

Reserved

预留

保留

释放后已修改释放块的池标头。 这通常不是释放块的先前所有者的错误;相反,这通常是(但并非总是)由于释放块之前释放的块已溢出。

0x20

应找到的池条目

下一个池条目

Reserved

池块标头大小已损坏。

0X21

正在释放的池指针

为池块分配的字节数

在池块后找到的损坏值

正在释放池块后的数据已损坏。 通常,这意味着使用者(调用堆栈)已溢出块。

0X22

正在释放的地址

Reserved

保留

正在释放的地址没有跟踪条目。 这通常是因为调用堆栈尝试释放已释放或从未分配以开始的指针。

原因

当前请求时池已损坏。

这可能是由于调用方造成的。

解决方法

必须使用内核调试器来演练内部池链接,才能找出问题可能的原因。

然后,可以对可疑池标记使用特殊池,或者在可疑驱动程序上使用驱动程序验证程序“特殊池”选项。 !analyze 扩展可能有助于查明可疑驱动程序,但这通常不是池损坏者的情况。

使用分析错误检查蓝屏数据中所述的步骤收集停止代码参数。 使用停止代码参数来确定要跟踪的特定类型的代码行为。

驱动程序验证程序

驱动程序验证程序是一个实时运行的工具,用于检查驱动程序的行为。 如果它在驱动程序代码的执行中发现错误,则会主动创建一个异常,以允许进一步检查驱动程序代码的该部分。 驱动程序验证程序管理器内置于 Windows 中,可在所有 Windows PC 上使用。 若要启动驱动程序验证程序管理器,请在命令提示下键入“验证程序”。 你可以配置要验证的驱动程序。 验证驱动程序的代码在运行时会增加开销,因此请尝试验证尽可能少的驱动程序。 有关详细信息,请参阅驱动程序验证程序

Windows 内存诊断

如果此错误检查不一致,则可能与物理内存故障相关。

运行 Windows 内存诊断工具以测试内存。 在控制面板搜索框中键入“内存”,然后选择诊断计算机内存问题。运行测试后,使用事件查看器查看系统日志下的结果。 查找“内存诊断结果”条目以查看结果