ai3000
驱动牛犊
驱动牛犊
  • 注册日期2007-01-08
  • 最后登录2011-01-18
  • 粉丝2
  • 关注1
  • 积分10分
  • 威望140点
  • 贡献值1点
  • 好评度75点
  • 原创分1分
  • 专家分0分
阅读:1114回复:0

IFS 学习心得(五):IRP和IO堆栈

楼主#
更多 发布于:2007-01-19 21:09
  WDM使用分层设备对象结构的目的就是使IRP能方便地从一层驱动程序传递到下一层驱动程序。
IPR创建的同时创建IO堆栈数组,并随IRP一起从上层驱动传递到下层。
上层为下层建立IO堆栈,若要设置完成例程则使用IoCopyCurrentIrpStackLocationToNext建立堆栈,若无需设置完成例程,使用IoSkipCurrentIrpStackLocation,不建立IO堆栈,因为建立IO堆栈单元的作用主要是为了能使IRP完成时能调用IRP完成例程。
每个IO堆栈单元都有一个完成例程。
每处理一次复制堆栈操作,堆栈指针向下移动一次,直至IRP完成回卷调用IO完成例程。
游客

返回顶部