版块
论坛
喜欢
话题
应用
搜索
登录
注册
hustwing的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=176596
IRP_MJ_CLOSE中使用线程技术无法避免重入??
我使用楚狂人教程中的线程技术避免重入,在CREATE中工作良好,但是在CLOSE中,当我自己线程中的代码执行到ZwClose时,系统就没有下文了,好像是ZwClose从来没有返回一样。查了一下微软官方的文档,有一篇上面说:Unlike IRP_MJ_CREATE and IRP_...
全文
回复
(
7
)
2007-12-06 10:10
来自版块 -
文件系统(过滤)驱动程序开发
◆
◆
表情
告诉我的粉丝
提 交
hustwing
:
o(∩_∩)o...3ks Very much!!
(2007-12-07 09:17)
回复
yandong_8212
:
按你说的如果是当机,那就要分析DUMP文件
(2007-12-06 15:08)
回复
yandong_8212
:
一个ZwClose会引起一个IRP_MJ_CLEANUP,如果是正常关闭就肯定有IRP_MJ_CLEANUP,IRP_CLOSE有可能是系统进程自动发起的.
(2007-12-06 15:05)
回复
hustwing
:
我之所以放在close的派遣函数里面,是因为我在跟踪写字板的读写文件时,似乎没有发现IRP_MJ_CLEANUP的irp啊,只有close。。。
(2007-12-06 11:44)
回复
hustwing
:
但是我如果直接在我的CLOSE派遣函数中直接执行ZwClose(),确实会使系统堆栈溢出然后宕机;我调试了以后发现确实还是因为重入。但是当我把我的ZwClose()相关操作放入自己的线程中去做以后,系统没有宕,但是可能出现了你所说的资源互锁。 对了,想知道,ZwClose一定是...
(2007-12-06 11:42)
回复
yandong_8212
:
说错了,减为0时才发IRP_MJ_CLOSE
(2007-12-06 11:32)
回复
yandong_8212
:
首先,你要明确IRP_MJ_CLOSE并是和ZwClose是相对应的.ZwClose和IRP_MJ_CLEANUP相对应.当FileObject的引用计数减为一的时候会自动触发IRP_MJ_CLOSE. 对于重入的处理,还是要根据的实际情况进行分析,重入本身不会导致死锁,导致死锁...
(2007-12-06 11:23)
回复
hustwing
加关注
写私信
0
关注
0
粉丝
18
帖子
返回顶部