阅读:1396回复:2
DriverEntry执行KeWaitForSingleObject()失败提示IRQL等级不够,KeWait要求<=DISPATCH_LEVEL,DriverEntry是PASSIVE 应该可以吧 |
|
最新喜欢:![]() |
沙发#
发布于:2007-09-12 10:56
规则表明在驱动程序的派遣函数中阻塞当前线程,没有必要在DriverEntry或AddDevice函数中阻塞当前线程,因为这些函数的工作仅仅是初始化一些数据结构。但调用失败的情况,还真没注意。
|
|
板凳#
发布于:2007-09-14 13:52
关键是看你在呼叫KeWaitForSingleObject是等待的是什么东西。如果是先前用 KeCreateEvent这种呼叫建立的event,当然可以直接等待;如果是需要用KeWaitForSingleObject等待kernel thread,你需要用 ObReferenceObjectByHandle把thread handle转换成可以用于KeWaitForXXX的 object。当然,在最后你要用ObDereferenceObject 释放thread handle.
|
|