阅读:1433回复:9
哪个IRP能表示文件写完?
我监视写完文件的瞬间,,应该是哪个IRP?
CLOSE CLEANUP可以吗?? 另外:当我COPY一个很大的文件从C:\\ 到 D:\\,全部复制完用CLOSE CLEANUP能监视到吗? |
|
最新喜欢:![]() |
驱动老牛
![]() |
沙发#
发布于:2005-04-20 10:03
我监视写完文件的瞬间,,应该是哪个IRP? 判断写结束标记 |
|
板凳#
发布于:2005-04-20 11:15
1 写结束标志,能具体一些吗?
2 是在哪个IRP中判断呢? 3 有一些IRP中已经不能得到路径,难道是在CREATE中判断写结束标志?? 谢谢 |
|
地板#
发布于:2005-04-26 09:17
学习!
|
|
地下室#
发布于:2005-04-26 10:10
我用filemon观察,copy一个文件,
最后都会有一个set_infomation, file_basicinfomation 的irp, 我打算先记下一个IRP_WRITE,得到有IRP_SETINFROMATION,(filebasic information_),就判断文件copy 结束. 没试过,不知到行不行. |
|
5楼#
发布于:2005-04-26 10:34
楼上的,不知道你有没有看到FILEMON的运行效果。每秒都会有很多系统文件的打开和关闭,都会有很多相同的IRP。
在你在WRITE中记录下以后,到COPY真正结束前也许会有很多相同的IRP_SET_INFORMATIION到来,但是却不是你希望要拦截的。 这样怎么处理? |
|
6楼#
发布于:2005-04-26 12:24
IRP_SET_INFORMATIION 是不少,
但set的类型是FileBasicInformation的不多, 你看看filemon. |
|
7楼#
发布于:2005-04-27 10:51
按你的意思我看了filemon。
但是我没有出现你说的FileBasicInformation。 而是出现了FileEndOfFileInformation。但是在一个60M的文件COPY过程中,FileEndOfFileInformation会发出4--5次。不能准确的知道写完的那一点。。 谢谢你的回复。希望继续交流。 |
|
8楼#
发布于:2005-04-28 08:53
就在irp_mj_write中比较FileSize和当前写的offset+bytecount
不是就可以判断了吗,当然还要判断是不是文件要扩展。 |
|
9楼#
发布于:2005-04-28 09:34
楼上的方法我也想过。
但是有一些COPY工具并不是COPY完就将文件关闭的。 我的最终目的是发现系统中有文件被修改,拿到修改完(其他进程已经不再使用这个文件)这个状态。COPY只是一个方面,对于WIN的复制、粘贴通过判断大小我想是可以的。但是用户对一个已有的文件修改,怎么办? 我现在基本认为驱动得不到我想要的。 |
|