错误检查 0xD0:DRIVER_CORRUPTED_MMPOOL
DRIVER_CORRUPTED_MMPOOL 错误检查的值为 0x000000D0。 这表示系统试图访问进程 IRQL 过高的无效内存。
重要
这篇文章适合程序员阅读。 如果你是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答。
DRIVER_CORRUPTED_MMPOOL 参数
参数 | 说明 |
---|---|
1 |
引用的内存 |
2 |
引用时的 IRQL |
3 |
0: 读取 1: 写入 |
4 |
引用内存的地址 |
原因
当 IRQL 过高时,内核试图访问可分页内存(或者可能完全无效的内存)。 几乎可以肯定,这个问题的最终原因是驱动程序损坏了系统池。
在大多数情况下,如果驱动程序破坏了较大的分配(PAGE_SIZE 或更大),则会导致此错误检查。 较小的分配会导致错误检查 0xC5 (DRIVER_CORRUPTED_EXPOOL)。
解决方法
如果最近安装了任何新软件,请检查是否安装正确。 请访问制造商的网站,查看更新的驱动程序。
若要调试此错误,请使用驱动程序验证程序的特殊池选项。 如果无法显示导致错误的驱动程序,请使用 Global Flags 实用工具启用特殊的逐池标记。
有关特殊池的信息,请参阅 Windows 驱动程序工具包的驱动程序验证程序部分。
另一种方法是打开 \\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management 注册表项。 在此键中,创建或编辑 ProtectNonPagedPool 值,并将其设置为等于 DWORD 1。 然后重新启动。 然后,系统将取消映射所有释放的非分页池。 这将防止驱动程序损坏池。 (但是,这并不能保护池不受 DMA 硬件的影响。)