Mini Filter Driver触发Bugcheck D1问题分析

本文分析了在开发文件加密Mini Filter Driver时遇到的Bugcheck D1问题,通过WinDbg解析错误栈,发现错误发生在高IRQL尝试访问可换页内存。通过对WDK的深入研究,理解了PostOperation回调函数的约束,特别是不能在DISPATCH_LEVEL访问分页池,并且回调函数本身不能是可换页的。修复这些问题后,蓝屏问题得到解决。
摘要由CSDN通过智能技术生成

前段时间帮朋友改进他做的文件加密Mini Filter Driver,好不容易把期待的功能完善好了,测试时开始频繁触发蓝屏,Bugcheck号是D1。WinDbg对这个错误号的简单解释如下:

DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
An attempt was made to access a pageable (or completely invalid) address at an interrupt request level (IRQL) that is too high.  This is usually caused by drivers using improper addresses.

也就是在高IRQL试图访问可换页内存。看到这种错误的第一反应是头皮发麻。冷静下来后,我回想起以前自己总结出的经验,那就是碰到错误不要慌,首先把错误的所有信息解读清楚。

从栈回溯来看,发生错误的位置如下:

STACK_TEXT:  
8078ab6c 99298fff badb0d00 868992b8 89d28620 nt!KiTrap0E+0x1b3
8078ac30 84c587d1 868992b8 8078ac84 9db0cff8 S_Crypt!PostRead+0x27
8078ac60 84c33324 868992b8 0278ac84 9db0cff8 fltmgr!FltvPostOperation+0x71
8078acc8 84c36512 00899258 86899258 10000000 fltmgr!FltpPerformPostCallbacks+0x24a
8078acdc 84c36b46 86899258 8078ad90

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值