bladellz
驱动小牛
驱动小牛
  • 注册日期2006-03-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望121点
  • 贡献值0点
  • 好评度120点
  • 原创分0分
  • 专家分0分
阅读:1396回复:2

DriverEntry执行KeWaitForSingleObject()失败

楼主#
更多 发布于:2007-09-07 15:32

提示IRQL等级不够,KeWait要求<=DISPATCH_LEVEL,DriverEntry是PASSIVE
应该可以吧

最新喜欢:

linshierlinshi...
zyxcn2002
驱动牛犊
驱动牛犊
  • 注册日期2007-06-13
  • 最后登录2009-07-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望18点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-09-12 10:56
规则表明在驱动程序的派遣函数中阻塞当前线程,没有必要在DriverEntry或AddDevice函数中阻塞当前线程,因为这些函数的工作仅仅是初始化一些数据结构。但调用失败的情况,还真没注意。
Chequer Jiang
驱动牛犊
驱动牛犊
  • 注册日期2007-09-13
  • 最后登录2007-12-17
  • 粉丝1
  • 关注0
  • 积分290分
  • 威望30点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-09-14 13:52
关键是看你在呼叫KeWaitForSingleObject是等待的是什么东西。如果是先前用 KeCreateEvent这种呼叫建立的event,当然可以直接等待;如果是需要用KeWaitForSingleObject等待kernel thread,你需要用 ObReferenceObjectByHandle把thread handle转换成可以用于KeWaitForXXX的 object。当然,在最后你要用ObDereferenceObject 释放thread handle.
游客

返回顶部