版块
论坛
喜欢
话题
应用
搜索
登录
注册
acidfish的个人空间
访问量
8
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=25721
关于取消例程和完成例程的一点认识,大牛们请斧正
最近开发的时候得到了一点认识,不知道正确与否,请大牛们判断一下:当我一个功能驱动程序收到一个上层发下来的Irp的时候,如果IoSetCancelRoutine和IoSetCompletionRoutine都进行了设置,win32 app采用异步调用,当win32 app调用Can...
全文
回复
(
9
)
2004-04-24 12:13
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
Shentu
:
下层驱动在处理来自上层的IRP的时候,一般都要看一下IRP的Cancel位是否被设置,以及CancelRoutine是否已被调用,然后才决定怎么动作。一般这样就可以防止访问空的问题。 调用IoCancelIrp()可以取消由本层驱动管理的IRPs,而且对这样的IRP设置Canc...
(2004-07-13 17:30)
回复
punk
:
[quote][quote]自己程序里创建的新的 IRPs 是可以设置取消例程的,而且一般都是要设置的,否则怎么取消呢? 对了,acidfish大哥,还要谢谢你给我的usb-to-serial的宝贵意见!现在基本上没有什么问题了。谢谢你!! 要是上层取消了irp,那lowe...
(2004-07-13 15:05)
回复
acidfish
:
[quote]自己程序里创建的新的 IRPs 是可以设置取消例程的,而且一般都是要设置的,否则怎么取消呢? 对了,acidfish大哥,还要谢谢你给我的usb-to-serial的宝贵意见!现在基本上没有什么问题了。谢谢你!! 要是上层取消了irp,那lower devic...
(2004-07-13 14:56)
回复
punk
:
自己程序里创建的新的 IRPs 是可以设置取消例程的,而且一般都是要设置的,否则怎么取消呢? 对了,acidfish大哥,还要谢谢你给我的usb-to-serial的宝贵意见!现在基本上没有什么问题了。谢谢你!! 要是上层取消了irp,那lower device岂不是要非法...
(2004-07-13 14:50)
回复
Shentu
:
自己程序里创建的新的 IRPs 是可以设置取消例程的,而且一般都是要设置的,否则怎么取消呢? 对了,acidfish大哥,还要谢谢你给我的usb-to-serial的宝贵意见!现在基本上没有什么问题了。谢谢你!!
(2004-07-12 18:33)
回复
acidfish
:
哦。谢谢老兄提醒。 还真没考虑这种情况。 现在回想起来,老兄说得还真是,碰到的一些SetCancelroutine的例子都是不往下发送Irp的情况。
(2004-07-09 16:43)
回复
punk
:
既然还有lower device就不应该设置cancel route
(2004-07-09 16:21)
回复
wowocock
:
VOID IoSetCompletionRoutine( IN PIRP Irp, IN PIO_COMPLETION_ROUTINE CompletionRoutine, IN PVOID Context, IN BOOLE...
(2004-04-26 09:53)
回复
wenzihe
:
终于找到相关话题了 CancelIo能结束进入死循环的Io吗? 如何操作? 谢谢
(2004-04-25 00:16)
回复
acidfish
加关注
写私信
0
关注
0
粉丝
118
帖子
返回顶部