我分析了一下你的这个minidump,看来问题很有可能是在内存啊。
我想先谈谈0x00000024错误。0x00000024错误的描述是NTFS_FILE_SYSTEM,也就是说该错误表明在ntfs.sys驱动中发生了错误。虽然这个错误是与文件系统有关的,但是这个错误有两个起因:
1、真的是NTFS文件系统损坏或者硬盘上面有坏的扇区;
2、内存的非换页池被耗尽。
经过我的分析,我更认为是第二种原因造成了你的蓝屏,原因有以下两点:
1、在stack中,我并没有发现Ntfs!NtfsExceptionFilter,也就是说,Ntfs驱动在访问你的NTFS文件系统时并没有发现NTFS结构异常;
2、我使用!vm命令对你当时的内存情形进行分析时,发现确实耗尽了内存,也耗尽了系统的PTE,这将必然导致当一个内核模式的驱动再请求非换页池时,系统崩溃。
这个问题的罪魁祸首是你的内存不足,因此一般的建议是增加物理内存。
但是,也有另外一种情形,就是罪魁祸首并不是物理内存不足,而是另外的一个内核模式驱动。如果您的物理内存没有那么小,我相信这种情况的可能性较大。
由于您的非换页池已被耗尽,于是这个问题的罪魁祸首是不能通过本次的dump信息分析出来的。
为了能够揪出罪魁祸首,您需要启用“特殊池”。原理我在此简述如下:
通过启用特殊内存池,被检验的所有驱动程序对于略小于一个页面大小的缓冲区申请都将使用特殊内存池,不而是使用一般情形下的换页或非换页内存池。从特殊内存池中分配的缓冲区被夹在两个无效页面之间。因此,对于小于一个页面大小的缓冲区的溢出,系统在溢出发生时就会检测到,因为它导致了在缓冲区之后的无效页面发生了页面错误,也就是pagefault。那么,再次崩溃时,得到的错误应该是DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION(d6),这样就将不可调试的转为可调试的了,而且运气好的话能够看见Windbg直接指出引起崩溃的驱动。
因此,我强烈建议您尝试开启“特殊池”并且重现该崩溃一次。启用方法如下:
1、运行“verifier.exe”,您会看见“驱动程序验证程序管理器”向导;
2、选择第二项——“创建自定义设置(供程序开发人员使用)”,然后点击“下一步”;
3、选择第二项——“从一个完整的列表选择单个设置”,并点击“下一步”;
4、仅选中第一项——“特殊池”前面的复选框,进入下一步;
5、选择第三项——“自动选择这台计算机上安装的所有驱动程序”,点击“完成”;
接下来,您需要做的是:
6、重新启动系统;
7、尝试再次引发同样的崩溃;
8、再次分析内存转储文件。
请您尝试后及时给予我们反馈,谢谢!
参考资料:Debugging Tools for Windows 帮助(6.11.0001.404)、《Sysinternals 4th Edition》Microsoft MVP for Windows Desktop Experience
https://mvp.support.microsoft.com/profile/Huayu