FltSendMessage导致IRQL_NOT_LESS_OR_EQUAL错误
Windows内核调试
FltSendMessage导致IRQL_NOT_LESS_OR_EQUAL错误
kuaixue1023
2010-06-13, 16:09 下午
我在minifilter结构的postread例程中使用FltSendMessage函数从驱动中应用层发审计信息(不需要应用层回复)
status = FltSendMessage( gFilterHandle,
&g_pClientPort,
notification,
sizeof( MSG_SEND_AUDIT ),
NULL,
&replyLength,
NULL
);
然后应用层有一个线程用来接收消息并处理,有的时候驱动运行十分正常,但是有的时候会BSOD,用windbg调试显示是错在
FltSendMessage函数上,wdk文档上说它要求
在
IRQL:
<= APC_LEVEL,可是我之前并没有任何导致
IRQL提高的操作
啊,看了minifilter自带的例子scanner中也是这样使用的(不过scanner中的通信应用层会回复消息),在网上查了N多资料,
仍然无法解决这个问题,希望高手予以指点!
Re: FltSendMessage导致IRQL_NOT_LESS_OR_EQUAL错误
格蠹老雷
2010-06-13, 23:19 下午
这个BSOD应该是内存的问题,在高IRQL触发了Page Fault;贴一些DUMP文件的信息上来...
Re: FltSendMessage导致IRQL_NOT_LESS_OR_EQUAL错误
kuaixue1023
2010-06-14, 15:27 下午
检查出来了 是IRQL过高在DISPATCH_LEVEL,谢谢张老师
Re: FltSendMessage导致IRQL_NOT_LESS_OR_EQUAL错误
丁先生
2010-06-15, 22:36 下午
那么你是如何解决的呢?
Re: FltSendMessage导致IRQL_NOT_LESS_OR_EQUAL错误
kuaixue1023
2010-06-21, 22:36 下午
我是要用这个发审计信息,我是判断了IRQL然后再发的,要是高了就不发