阅读:5708回复:12
minifilter过滤word时如何识别当前创建读写的是临时文件?
minifilter中过滤word文件的读写时,光过滤本身DOC文件的读写肯定不行,还要过滤中途生成的tmp文件,
可是我现在在Create,SetInfo和Write回调函数中不知道如何识别当前进行的是临时文件。 ReName还好处理因为可以比较改名前的,像对于Create临时文件这个动作我就不知道怎么来截获了, 各路高手路过帮帮忙,谢谢了 |
|
沙发#
发布于:2011-03-19 18:05
取文件扩展名,即可以在PreCreate中也可以PostCreate中,Pre中可以直接使用fobj的文件名,post中自己获取文件名即可。取到后匹配,然后使用streamcontext和streamhandlecontext记录你感兴趣的信息……
|
|
板凳#
发布于:2011-03-21 09:41
楼上的,匹配什么呢,关机根本不知道临时文件的名字啊,要知道就很好搞了...
|
|
地板#
发布于:2011-03-21 09:41
匹配什么呢,因为根本不知道临时文件的名字啊,要知道就很好搞了...
|
|
地下室#
发布于:2011-03-21 11:05
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2011-03-21 15:05
一个路径 一个进程名 这两个判断
另外取文件扩展名不能在PRECREATE中 那时候有没名字还很难说 |
|
6楼#
发布于:2011-03-21 15:06
我现在发现,在我每次写文件时,竟然过滤了俩个TMP文件,奇怪的是俩个文件名不一样,
也就是说 ①:Doc->~WRL0001.tmp ②:~WRL0000.tmp->Doc |
|
7楼#
发布于:2011-03-21 15:06
不知道是怎么回事,这样的话第二步就很难整了。
|
|
8楼#
发布于:2011-03-21 15:13
现在问题就是我6楼说的俩次tmp文件名不一样,第二次无法真正的临时文件名,Create失败,也就无法重命名回去原来的doc文件。不知道啥原因。
|
|
9楼#
发布于:2011-03-21 16:43
用户被禁言,该主题自动屏蔽! |
|
10楼#
发布于:2011-03-21 18:32
因为我要过滤这个word文件的所有读写,然后在别的分区再创建个一摸一样的,就是映射过去。所以临时文件也要映射过去。
|
|
11楼#
发布于:2011-03-23 10:32
问题已经解决。谢谢各位啦!
总结下Word的读写过程,excel,ppt应该差不多,我简单看了下。 例如,在test.docx中写一段文字然后保存,将进行一下操作 Create: \Device\HarddiskVolume2\test.docx ..... Create: \Device\HarddiskVolume2\~$test.docx(这一步应该没太大用处) ..... Write: \Device\HarddiskVolume2\~$test.docx(这一步应该没太大用处) ...... Create: \Device\HarddiskVolume2\~WRD0000.tmp ...... Write: \Device\HarddiskVolume2\~WRD0000.tmp(更新数据后的文件) ...... FileRename: \Device\HarddiskVolume2\test.docx ---> \??\D:\~WRL0001.tmp(保存更新前文件) ...... FileRename: \Device\HarddiskVolume2\~WRD0000.tmp ---> \??\D:\test.docx,(用户最终看到的文件) ...... Delete \??\D:\~WRL0001.tmp(删除备份文件) |
|
12楼#
发布于:2011-03-23 11:48
楼主写了
|
|