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然后再发的,要是高了就不发

Powered by Community Server Powered by CnForums.Net