zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
阅读:1432回复:9

哪个IRP能表示文件写完?

楼主#
更多 发布于:2005-04-19 13:24
我监视写完文件的瞬间,,应该是哪个IRP?
CLOSE CLEANUP可以吗??

另外:当我COPY一个很大的文件从C:\\   到   D:\\,全部复制完用CLOSE CLEANUP能监视到吗?

最新喜欢:

hsly110hsly11...
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-04-20 10:03
我监视写完文件的瞬间,,应该是哪个IRP?
CLOSE CLEANUP可以吗??

另外:当我COPY一个很大的文件从C:\\   到   D:\\,全部复制完用CLOSE CLEANUP能监视到吗?


判断写结束标记
---内核开发合作或提供基础技术服务QQ:22863668 ---
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-20 11:15
1 写结束标志,能具体一些吗?
2 是在哪个IRP中判断呢?
3 有一些IRP中已经不能得到路径,难道是在CREATE中判断写结束标志??

谢谢
cicada
驱动小牛
驱动小牛
  • 注册日期2003-12-09
  • 最后登录2008-07-11
  • 粉丝1
  • 关注0
  • 积分74分
  • 威望15点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-26 09:17
学习!
yearnyan
驱动牛犊
驱动牛犊
  • 注册日期2004-06-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-26 10:10
    我用filemon观察,copy一个文件,
最后都会有一个set_infomation, file_basicinfomation 的irp,
我打算先记下一个IRP_WRITE,得到有IRP_SETINFROMATION,(filebasic information_),就判断文件copy 结束.
没试过,不知到行不行.
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-26 10:34
楼上的,不知道你有没有看到FILEMON的运行效果。每秒都会有很多系统文件的打开和关闭,都会有很多相同的IRP。

在你在WRITE中记录下以后,到COPY真正结束前也许会有很多相同的IRP_SET_INFORMATIION到来,但是却不是你希望要拦截的。

这样怎么处理?
yearnyan
驱动牛犊
驱动牛犊
  • 注册日期2004-06-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-26 12:24
IRP_SET_INFORMATIION 是不少,
但set的类型是FileBasicInformation的不多,
你看看filemon.
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-04-27 10:51
按你的意思我看了filemon。

但是我没有出现你说的FileBasicInformation。
而是出现了FileEndOfFileInformation。但是在一个60M的文件COPY过程中,FileEndOfFileInformation会发出4--5次。不能准确的知道写完的那一点。。

谢谢你的回复。希望继续交流。
ciomhan
驱动牛犊
驱动牛犊
  • 注册日期2004-04-26
  • 最后登录2010-07-27
  • 粉丝0
  • 关注0
  • 积分244分
  • 威望75点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-04-28 08:53
就在irp_mj_write中比较FileSize和当前写的offset+bytecount
不是就可以判断了吗,当然还要判断是不是文件要扩展。
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-04-28 09:34
楼上的方法我也想过。
但是有一些COPY工具并不是COPY完就将文件关闭的。
我的最终目的是发现系统中有文件被修改,拿到修改完(其他进程已经不再使用这个文件)这个状态。COPY只是一个方面,对于WIN的复制、粘贴通过判断大小我想是可以的。但是用户对一个已有的文件修改,怎么办?

我现在基本认为驱动得不到我想要的。
游客

返回顶部