阅读:1106回复:1
网络磁盘驱动开发的问题
为了说清楚问题,写得比较多,请大家耐心看。
本人目前准备开发一个网络磁盘的Driver(Windows中虽然已有现成的,但由于项目需要,不能使用),与之对应的还需要开发一个文件服务器。 基本思路: 文件服务器上保存影像文件(image),网络磁盘Driver通过TDI进行网络通信访问文件服务器上的影像文件,并将影像文件虚拟为一个磁盘。 文件服务器属于用户态的应用程序,基本没什么问题,但是客户端的网络磁盘Driver却存在一些难题。 在网上找了两个OpenSource的Driver:TrueCrpyt和HttpDisk,将两者结合起来基本上就可以了,但是存在两个问题: 1、多人同时通过网络磁盘写文件时,可能会出现并发问题(这只是我的猜测,实际是否如此,还需检验); 2、文件服务器上需要对文件及目录的访问进行权限控制,那么就需要在Driver中区分出文件及目录的各种操作,包括:创建、删除、改名、读取和写入等,然后才能对这些操作进行权限控制。 我分析了一下TrueCrpyt和HttpDisk的源码,没有找到文件的创建、删除、改名、读取和写入等操作,而只是简单的读写影像文件。 难道Driver中就不能区分出文件的各种操作?那么如何进行权限控制? 或者我这种思路就有问题? 以上问题望各位不吝赐教,如果有更好的思路也希望分享一下。 Thanks in Advance |
|
沙发#
发布于:2008-02-19 17:05
对于硬盘驱动来说,它只处理块读和块写的请求(当然还要实现一些查询控制命令),至于硬盘上数据的组织管理,是由文件系统来负责的。如果你需要截获文件的创建、删除、改名、读取和写入等操作,需要写一个文件系统过滤驱动。
|
|