guijc1
驱动牛犊
驱动牛犊
  • 注册日期2008-06-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望231点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
阅读:3710回复:3

【Minifilter】文件过滤驱动,怎么禁用把本地文件复制到网络共享中?麻烦大家给点思路,万分感谢

楼主#
更多 发布于:2012-06-28 10:56
如题,需求如下:(现在有本地硬盘: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步也是被禁止掉了(这个本来是应该允许的)
 
那么请问,各位有什么好的意见或思路,希望不吝赐教,万分感谢
guijc1
驱动牛犊
驱动牛犊
  • 注册日期2008-06-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望231点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
沙发#
发布于:2012-06-28 10:59
当然也想过用全局变量来保存上一次-Pre-Create的文件名,但是这个对于Copy命令,复制前后文件名不同的情况,好像无法进行判断,完全没有什么思路了,大家有什么建议,帮个忙吧
alwaysrun
驱动小牛
驱动小牛
  • 注册日期2006-06-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1059分
  • 威望752点
  • 贡献值1点
  • 好评度98点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2012-06-29 11:45
感觉复制与上层关系更大,文件名相同也不能代表一个文件啊。
直接禁止向网络盘上创建新文件得了
一颗平常的心!
guijc1
驱动牛犊
驱动牛犊
  • 注册日期2008-06-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望231点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分1分
地板#
发布于:2012-07-02 09:02
FileObject相同就可以认为是一个文件的同一次打开了吧?

至于向网络盘新建文件,这个肯定是已经做过的,只是不符合上面第3点的要求啊

游客

返回顶部