版块
论坛
喜欢
话题
应用
搜索
登录
注册
xiaorain的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=54736
IoCancelIrpk可否在完成历程中调用?斑竹,shentu大哥进来看看啊
我做了一个usb转虚拟串口的驱动,现在准备提供异步读写方式,因为同步的话,会导致应用在readfile的时候占用cpu时间太多。现在应用中使用readfile()来进行读取,由于他没有指定readfile中要读的数据的长度(总是指定为1024),所以在我的驱动中要构造很多的irp...
全文
回复
(
13
)
2004-12-01 11:50
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
AllenZh
:
0000000a(00000386,2,0,23Ad45f9 ),感觉取消逻辑太复杂了,allenzh帮我讲一下好吗? 主irp和辅助irp的取消到底是如何进行的呢? 应该在辅助irp的完成历程中取消主irp吗? 主irp是自己主动取消(调用iocancelirp)还是由下...
(2004-12-06 12:04)
回复
lejianz
:
Shentu说得对,我前一段时间也遇到相似的情况。我在DISPATHC LEVEL层读USB数据,只有数据读到,该IRP才返回,没有读到,此IRP一直在等待。因此,在卸载时,总有一个IRP才等待。因此,我只有在REMOVE例程中取消才解决问题。 BTW,我用什么工具才能检查...
(2004-12-05 13:55)
回复
Shentu
:
对那些还在排队的 IRPs 直接用 STATUS_CANCELLED 完成就可以了。只有对那个正在 Pending 的 IRP 要用 IoCancelIrp()。
(2004-12-03 17:30)
回复
xiaorain
:
感谢大家。:) tooflat你说的对,因为是usb设备,所以一个读irp下来,readfile()制定了长度,我要将这些长度分成64的长度,组成带urb的irp,然后发给下层驱动,但是因为readfile中的长度时胡乱制定的,比如说一直是1024,但是设备没有那末多的数据,于...
(2004-12-03 10:19)
回复
sean198148
:
说说我的看法,IoCancelIrp好象通常都是系统调用的吧,用户线程结束irp没有完成时,系统调用IoCancelIrp,然后调用程序中提供的取消例程,或者用户显示调用win32 CancelIo引起你的取消例程被调用。 所以我感觉没有必要自己调用IocancelIrp吧。为...
(2004-12-03 10:00)
回复
tooflat
:
我对楼主的方法是这样理解的: 应用层通过readfile来读取usb设备中的数据,但是因为数据对齐和长度的关系,需要多个(自己分配的)irp才能完成(为什么???),现在楼主因为某种原因要取消这些自己分配的irp(又是为什么????) 我的解决办法是不要取消irp,在处理...
(2004-12-03 09:10)
回复
Shentu
:
我是在自己分配的irp的完成历程里取消自己分配的多余的irp。 我尝试了一下,在cancel的时候,有pagefault,错误是0000000A,driver_irql_not_less_or_equal, 再问一个问题阿,是不是一定要完成历程返回了才能说irp被彻底完成了?...
(2004-12-02 22:41)
回复
xiaorain
:
IofreeIrp()好像不行把,如果只是把irp free掉了,可是并没有完成他们阿,那样的话,是不是这些irp会一直在等待?下层驱动可能在满足条件的时候完成他们的话,就会出现操作空内存了,不知道是不是这样? 下层驱动都会开辟自己的内存区来保存上层传下来的irp堆栈吗?? ...
(2004-12-02 19:51)
回复
xiaorain
:
0000000a(00000386,2,0,23Ad45f9 ),感觉取消逻辑太复杂了,allenzh帮我讲一下好吗? 主irp和辅助irp的取消到底是如何进行的呢? 应该在辅助irp的完成历程中取消主irp吗? 主irp是自己主动取消(调用iocancelirp)还是由下...
(2004-12-02 19:44)
回复
AllenZh
:
我是在自己分配的irp的完成历程里取消自己分配的多余的irp。 我尝试了一下,在cancel的时候,有pagefault,错误是0000000A,driver_irql_not_less_or_equal, 再问一个问题阿,是不是一定要完成历程返回了才能说irp被彻底完成了?...
(2004-12-02 17:11)
回复
1
2
下一页 »
xiaorain
加关注
写私信
0
关注
0
粉丝
95
帖子
返回顶部