summerfruit
驱动牛犊
驱动牛犊
  • 注册日期2004-06-12
  • 最后登录2013-12-07
  • 粉丝0
  • 关注0
  • 积分395分
  • 威望67点
  • 贡献值0点
  • 好评度36点
  • 原创分0分
  • 专家分0分
阅读:1312回复:2

IoCallDriver导致IRQL_NOT_LESS_OR_EQUAL

楼主#
更多 发布于:2007-03-19 17:05
  我用IoAllocateIrp创建了一个IRP,同时创建BULK管道的URB,配置好stack location的功能码和完成例程,然后调用IOCALLDRIVER把IRP发送下去。

在我的完成例程里面,我调用IOCOMPLETERequest完成这个IRP,因为这个IRP是我建立的,我的驱动就是最上层驱动了(对这个IRP来说)

但是当执行完毕这个完成例程之后,就出现了IRQL_NOT_LESS_OR_EQUAL错误。

为什么啊?
请各位大侠赐教

谢谢先!
bamu1984z
驱动牛犊
驱动牛犊
  • 注册日期2006-09-18
  • 最后登录2008-07-24
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望78点
  • 贡献值0点
  • 好评度76点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-19 20:16
IoCompleteRequest(), 应该由底层处理这个irp的驱动来调, 你应该把这个irp释放掉而已;
summerfruit
驱动牛犊
驱动牛犊
  • 注册日期2004-06-12
  • 最后登录2013-12-07
  • 粉丝0
  • 关注0
  • 积分395分
  • 威望67点
  • 贡献值0点
  • 好评度36点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-23 13:39
谢谢指教。用楼上的方法,问题解决了。
游客

返回顶部