阅读:1439回复:5
如何将irp分解成若干子irp?
各位大虾:
如何在过滤驱动中将Irp分解成若干子irp完成原有的功能? |
|
沙发#
发布于:2005-07-18 08:30
用related irp
|
|
|
板凳#
发布于:2005-07-18 11:24
楼上朋友,能解释详细一点吗?谢谢!
|
|
地板#
发布于:2005-07-18 11:27
在最高层可用IoMakeAssociatedIrp,可在中间层如何split Irp?有请各位大虾?
|
|
地下室#
发布于: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中 |
|
5楼#
发布于:2005-07-28 09:17
可以参照USB驱动中将一个IRP_MJ_READ转换成多个IRP_MJ_INTERNAL_DEVICE_CONTROL的做法。Walter oney的书中有例子。
|
|