阅读:3840回复:3
【Minifilter】文件过滤驱动,怎么禁用把本地文件复制到网络共享中?麻烦大家给点思路,万分感谢
如题,需求如下:(现在有本地硬盘:C、D,和网络共享盘:E)
1. 禁止复制(c:\a.txt, --> e:\b.txt:) 2. 允许复制(c:\a.txt --> d:\a.txt)(c:\a.txt --> c:\b.txt) 3. 允许复制(e:\a.txt --> e\b.txt) 请问应该如何实现? 目前我的做法是在Pre-Create中,判断如果是File_Create,或File_overwrite_If,则用FltCreateFile打开文件,如果文件不存在,则认为是一次Create操作,从而在Pre-Create里面把该次操作禁止掉。但是由于得不到复制源的文件名,所以无法获得文件的位置,只能做到禁止复制到网络盘,也就是说只能做到上面的第1步,而第3步也是被禁止掉了(这个本来是应该允许的) 那么请问,各位有什么好的意见或思路,希望不吝赐教,万分感谢 |
|
沙发#
发布于:2012-06-28 10:59
当然也想过用全局变量来保存上一次-Pre-Create的文件名,但是这个对于Copy命令,复制前后文件名不同的情况,好像无法进行判断,完全没有什么思路了,大家有什么建议,帮个忙吧
|
|
板凳#
发布于:2012-06-29 11:45
感觉复制与上层关系更大,文件名相同也不能代表一个文件啊。
直接禁止向网络盘上创建新文件得了 |
|
|
地板#
发布于:2012-07-02 09:02
FileObject相同就可以认为是一个文件的同一次打开了吧?
至于向网络盘新建文件,这个肯定是已经做过的,只是不符合上面第3点的要求啊 |
|