启用特殊池解读 0x000000c5 蓝屏
百度一下0x000000c5,可得到的结果有 26600 条。但是在绝大多数的结果内,没有人给出了对症下药的合理方案。在我看来,蓝屏发生后,如若想要彻底解决,就不应该去"尝试"各种解决方案,而是使用 WinDbg 一类的利器,直接找到罪魁祸首。
首先,我们来认识一下,什么是常见的 0x000000c5 崩溃。
值为 0x000000c5的 bug check 其实是 DRIVER_CORRUPTED_EXPOOL。什么意思呢?说明系统尝试以过高的进程 IRQL 级别去访问无效内存。在蓝屏信息中,0x000000c5 后面的括号内还应跟有四个参数,其中第一个表明引用的内存地址,第二个参数表示引用时的 IRQL 级别,第三个参数要么是0要么是1,0表示读取,1表示写入,最后一个参数表示引用该内存的一个地址。
那么,一般有哪些原因引起了该错误呢?
引起该问题的一般原因为,一定有一个驱动程序损坏了系统的内存池。如果驱动损坏的是小于一个页面大小的分配单元,那么就会引发 0x000000c5 错误;倘若驱动损坏的是很大的区域,那么就会引发 DRIVER_CORRUPTED_MMPOOL 错误,值为 0x000000D0。
我该如何解决?
我的建议是,一定要启用特殊池!如果不启用特殊池,我们是无法得到真正的罪魁祸首的。而且,对于这个错误的直系、嫡系错误,我都推荐使用特殊池。我手头上暂时没有保存下来的 0x000000c5 内存转储,但是有一个 0x100000C5 DRIVER_CORRUPTED_EXPOOL。下面我展示一下堆栈结果:
从图中我们可以看见,0x7c90e514 并没有得到正确的解析,而且我可以告诉大家,它的地址也不是真实值,而是 WinDbg 根据内存上下文猜解的。此例中,我们就算使用 dds adb6ad48 命令,再配合 dds 命令,也只能找到一个微软公司的 win32k.sys 文件,这显然不是罪魁祸首。为了让我们能够定位出这个杀手驱动,我们不得不使用特殊池。
什么是特殊池?原理是什么?
特殊池就是特殊内存池,一旦启用,就好像系统部署了7x24小时监控,盯着可能是罪魁祸首的驱动。关于原理,我简单解释一下,就是通过启用特殊内存池,被检验的所有驱动程序对于略小于一个页面大小的缓冲区申请都将使用特殊内存池,不而是使用一般情形下的换页或非换页内存池。从特殊内存池中分配的缓冲区被夹在两个无效页面之间。因此,对于小于一个页面大小的缓冲区的溢出,系统在溢出发生时就会检测到,因为它导致了在缓冲区之后的无效页面发生了页面错误,也就是pagefault。那么,再次崩溃时,得到的错误应该是 DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION(0x000000d6),这样就将不可调试的转为可调试的转储文件了,而且运气好的话能够看见Windbg直接指出引起崩溃的驱动。
怎样启用特殊池?
1、运行"verifier.exe",您会看见"驱动程序验证程序管理器"向导;
2、选择第二项——"创建自定义设置(供程序开发人员使用)",然后点击"下一步";
3、选择第二项——"从一个完整的列表选择单个设置",并点击"下一步";
4、仅选中第一项——"特殊池"前面的复选框,进入下一步;
5、选择第三项——"自动选择这台计算机上安装的所有驱动程序",点击"完成";
6、重新启动系统。
在重启系统之后,特殊池就生效了,接下来您要做的就是等待系统再次崩溃出现蓝屏。通过蓝屏之后重新生成的内存转储文件就因该可以查到真凶了。
以上用到的 verifier.exe 在系统中有,在 Windows Driver Kit 里面也带有。如果通过它启用特殊池也未能查明真凶,请使用Debugging Tools for Windows 中的 gFlags 工具通过 pool tag 启用特殊池再试。
参考资料:
1. 《Debugging Help》 in Debugging Tools for Windows
2. MSDN - 《Windows Driver Kit》
转载于:https://www.cnblogs.com/mvperic/archive/2010/07/25/1784823.html
启用特殊池解读 0x000000c5 蓝屏相关推荐
- 中国移动网站控件引发的蓝屏问题分析
本周四(2月23日),我接到了我们同事的一个奇怪的蓝屏case,据他回忆,他最近没有安装任何软件和驱动,也没有更改计算机的硬件配置,除了Windows后台进行的自动更新之外,他实在想不起来到底对计算机 ...
- win7 蓝屏 0x000000c5
2019独角兽企业重金招聘Python工程师标准>>> 解决win7 蓝屏最有效的方法-蓝屏代码C5 2011-12-24 13:16 最近好久没上来写博,这几天我正想呢,哟,这会可 ...
- bios里IDE改AHCI-win7启用ahci蓝屏解决办法
bios里IDE改AHCI-win7启用ahci蓝屏解决办法 已安装Win7禁用了 AHCI 驱动程序 (Msahci.sys),必须先启用SATA驱动,才能更改成AHCI模式. 要解决此问题,请在更 ...
- win8.1启用ahci后蓝屏
先简单介绍一下,本应该win7开始,系统安装的时候默认就启用了ahci硬盘模式.但是博主犯了傻,装了win8.1后安装win XP形成双系统.xp并不支持ahci模式,所以将硬盘模式改成了IDE模式, ...
- 电脑蓝屏代码大全及解决办法合集
代码 含意 0 0x00000000 作业完成. 1 0x00000001 不正确的函数. 2 0x00000002 系统找不到指定的档案. 3 0x00000003 系统找不到指定的路径. 4 0x ...
- 解决windows电脑蓝屏的方法
解决90%Windows电脑蓝屏的方法 夜半随风听雨14小时前电脑蓝屏代码大全及解决办法合集代码 含意0 0x00000000 作业完成.1 0x00000001 不正确的函数.2 0x0000000 ...
- 超级硬干货| 电脑蓝屏代码大全及解决办法合集
Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨Caesar 来源丨手机电脑双黑客(heike ...
- 计算机组装配置(Win10蓝屏错误代码大全详解)
经常使用Windows系统的应该少不了蓝屏的时候,其实系统是有一些提示信息的,记录这个编号可以查询到大致是什么原因导致的,可以快速定位问题. 消息比较多,可以直接Ctrl + F搜索需要的信息即可. ...
- windows蓝屏原因速查表(常见蓝屏原因与解决方法速查(适用于Windows 7/8/8.1/10/11))
十六进制值 文字代码 可能的原因 可尝试的解决方法 0x00000001 APC_INDEX_MISMATCH 驱动出现问题,或安装了错误.不兼容的驱动 更新.重新安装相应设备官网的驱动 0x0000 ...
- vscode win10笔记本 蓝屏_win10蓝屏错误代码大全详解
在使用Win10系统的过程中,有时会遇到蓝屏问题,蓝屏是Windows专有的一种错误, 蓝屏是操作系统为了保护硬件而产生的蓝屏,但蓝屏代码有上百种,一般由于遇到软件冲突.系统文件出错,驱动不兼容,硬件 ...
最新文章
- linux内核map图
- [Silverlight资源]处理bmp,gif及ico图像类文件
- Activity与Service通信
- linux字符设备移动硬盘,Red Hat Enterprise Linux 7.5挂载NTFS移动硬盘
- 用Word写博客园文章
- SourceInsight配置
- 方法有多少个参数才算多?
- php另类上传图片的方法(PHP用Socket上传图片)
- python列表数据类型一致_python笔记--数据类型--列表
- Ubuntu安装文泉驿-微米黑字体
- 使用电脑时,眼睛离电脑多远才合适
- iPhone硬件拆机解锁方法 十步!
- 背包问题九讲 2.0 beta1.1
- 零基础程序员自学编程的6种方法,你知道吗?
- sqlserver加载驱动失败的问题
- qiankun使用Actions实现通信
- 机器学习做二元分类问题(二)
- 使用luac加密lua文件
- MongoDB的基本操作(创建数据库,数据表,查询数据表信息)
- 【ffmpeg教程】【无损快速转换】两行代码 快速无损转换mkv flv视频文件 第一期
热门文章
- linux2T硬盘分区命令,linux系统使用parted命令对大于2T的硬盘进行分区教程
- “互联网+政务”是什么?
- 什么是Subscript?
- Joplin实现样式更改
- Win10下AutoCAD2014 +VS2010 + Object2014 安装与配置环境
- ssm整合shiro,activiti配置文件
- KNEEL: Knee Anatomical Landmark Localization Using Hourglass Networks
- DISKPART 硬盘只读
- cubieboard2 android,cubieboard2双卡版系统安装指南_android.pdf
- html5酷炫动画效果网站,html5 WebGL酷炫网页动画特效