hook418
驱动牛犊
驱动牛犊
  • 注册日期2003-12-28
  • 最后登录2009-12-24
  • 粉丝0
  • 关注0
  • 积分191分
  • 威望28点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:1439回复:5

如何将irp分解成若干子irp?

楼主#
更多 发布于:2005-07-17 18:34
  各位大虾:

   如何在过滤驱动中将Irp分解成若干子irp完成原有的功能?
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-07-18 08:30
用related irp
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
hook418
驱动牛犊
驱动牛犊
  • 注册日期2003-12-28
  • 最后登录2009-12-24
  • 粉丝0
  • 关注0
  • 积分191分
  • 威望28点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-18 11:24
楼上朋友,能解释详细一点吗?谢谢!
hook418
驱动牛犊
驱动牛犊
  • 注册日期2003-12-28
  • 最后登录2009-12-24
  • 粉丝0
  • 关注0
  • 积分191分
  • 威望28点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-18 11:27
在最高层可用IoMakeAssociatedIrp,可在中间层如何split Irp?有请各位大虾?
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-07-18 17:21
自己管理咯,比如一个read irp(比如10个字节),你分成若干个子irp,每个子irp处理一个字节,然后对master irp分配一个结构,在该结构中保存该master irp已经完成了多少个字节,对每一个子irp分配一个结构,将master irp保存起来,
最后在每个子irp的完成例程中判断master irp已经完成了多少,如果全部完成,就调用iocompleterequest完成master irp,当然读出的数据也要复制到master irp中
isolator
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-07-28 09:17
可以参照USB驱动中将一个IRP_MJ_READ转换成多个IRP_MJ_INTERNAL_DEVICE_CONTROL的做法。Walter oney的书中有例子。
游客

返回顶部