getian_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-10-14
  • 最后登录2004-08-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:889回复:3

pnp的处理

楼主#
更多 发布于:2002-11-06 21:11
在wdm驱动中,处理pnp irp各次功能代码的例程是否需要调用IoCompleteRequest()?
是不是只有分发例程需要调用IoCompleteRequest()?
十分感谢!

最新喜欢:

dregsdregs
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-06 22:04
See Walt oney《Programming  Windows Driver Module》
Tom_lyd
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-07 12:29
任何一个IRP需要而且只需要调用IoCompleteIrp一次,由于次功能例程本身被PNP分发例程调用,在PNP的分发例程中调用了IoCompleteIrp,所以那些代码没有调用。
少了e,就少了全部
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-08 09:39
一种情况你关心IRP的结果,因此你需要一个完成例程,另一种情况你不关心IRP的结果,因此也不需要安装一个完成例程。有许多PnP请求属于第二类,你收到这样的IRP,然后把它们向下传递,不关心该IRP以后的情况。

派遣函数也可以在下面这两种情况下完成IRP:
如果请求是错误的(可以以容易的检测方式查明,例如要求打印机倒纸请求或卸载键盘请求),则派遣例程应以失败方式完成该请求并返回适当的出错代码。    
如果请求要求得到的仅是派遣函数可以容易确定的信息(例如一个询问驱动程序版本号的控制请求),则派遣例程应立即给出回答并完成请求,返回成功状态码。
生命驱动,活力无限!
游客

返回顶部