这个重入问题该怎样避免?

danxuezx 2009-10-20 03:18:36
一个磁盘卷(针对每个盘比如d盘)过滤驱动,过滤写IRP,然后把写入的内容写到我创建的一个文件上。这个文件也在d盘上。


假如我截获到一个写IRP过滤驱动,我取出要写的内容然后调用ZwWriteFile准备写入我先前创建的那个文件中。而调用ZwWriteFile会发写IRP,此时我又截获到了,又调用ZwWriteFile往此文件中写,然后又发写IRP,又截获,又写又发……
万劫不复……

这个该怎样避免呢?
...全文
76 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziplj 2009-10-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tr0j4n 的回复:]
通过GetCurrentThreadId != hThreadId来判断是不是自己的线程发出的包
[/Quote]
额 ...
到底是牛人 思路就是不一样
MoXiaoRab 2009-10-20
  • 打赏
  • 举报
回复
通过GetCurrentThreadId != hThreadId来判断是不是自己的线程发出的包
danxuezx 2009-10-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ziplj 的回复:]
你不知道有一个PDEVICE_EXTENSION 设备扩展域吗?  里面可以设置标志位
[/Quote]
有一点不理解:
假如我在扩展域中增加一项BOOL IsSecond;我该怎样设置这个标志呢?我第一次截获到的写IRP和第二次截获到的ZwWriteFile发的写IRP有什么关联呢?
ziplj 2009-10-20
  • 打赏
  • 举报
回复
灌水灌疯了 前段时间
ziplj 2009-10-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 danxuezx 的回复:]
引用 2 楼 ziplj 的回复:
结帖率:101.78%
我今天又见识了!!!

现在您的非技术分比技术分多。^_^
[/Quote]
没办法 这段时间要好好在VC区努力了
danxuezx 2009-10-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ziplj 的回复:]
结帖率:101.78% 
我今天又见识了!!!
[/Quote]
现在您的非技术分比技术分多。^_^
danxuezx 2009-10-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ziplj 的回复:]
你不知道有一个PDEVICE_EXTENSION 设备扩展域吗?  里面可以设置标志位
[/Quote]
谢谢您提醒,驱动初学者缺跟弦。
ziplj 2009-10-20
  • 打赏
  • 举报
回复
结帖率:101.78%
我今天又见识了!!!
ziplj 2009-10-20
  • 打赏
  • 举报
回复
你不知道有一个PDEVICE_EXTENSION 设备扩展域吗? 里面可以设置标志位

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧