阅读:2366回复:3
minifilter中FltSendMessage导致IRQL_NOT_LESS_OR_EQUAL错误
我在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多资料, 仍然无法解决这个问题,希望高手予以指点! |
|
沙发#
发布于:2010-06-13 16:19
自己顶一下
|
|
板凳#
发布于:2010-06-14 03:27
你可以看dump中的当前irql, 如果不高,通常可能是内存飞了
|
|
|
地板#
发布于:2010-06-14 15:34
回 2楼(znsoft) 的帖子
检查出来了 是IRQL过高在DISPATCH_LEVEL,谢谢znsoft |
|