Windows文件系统?

时间:2011-07-22 11:35:55

标签: c# c++ windows filesystems

我已经完成了在托管C#中开发归档格式,这种格式过于灵活,不能只是一个归档。我希望将它用作文件系统。

它组织良好,速度非常快,并且具有低级和高级API函数。它支持动态加密和压缩,密码保护,Windows资源管理器特定的文件元数据(如创建/修改/访问时间和属性),2 ^ 63 - 1大小的硬盘驱动器等。

如果可以让Windows识别并使用我的文件系统,我会学习Visual C ++只是为了实现它。 Windows中是否支持自定义文件系统? (7是必须的,其他是可选的。)如果是,我该如何制作/实施它们?

如果我必须使用某些第三方库,它必须是免费的。我不想使用CallbackFileSystem,因为它不是免费的。


也许有些读者很好奇为什么我选择不制作自己的司机。 原因是签署。必须签署在64位系统(至少我的Windows 7)上运行良好的驱动程序。
现在,我没有钱从可信赖的来源购买数字证书...所以没有我的驱动程序...我在我的大多数机器上使用x64 Windows 7所以写x86的驱动程序将是一个巨大的浪费...

3 个答案:

答案 0 :(得分:2)

嗯,一旦我尝试过这种方法,就有可能。我基于这些样本:http://www.acc.umu.se/~bosse/

P.S。此外,您不需要文件系统,您需要一个驱动程序

答案 1 :(得分:1)

是的,这是可能的,但你确实需要Visual C ++。文件系统是驱动程序,它们是本机运行的(在内核中)。您需要的相关部分是可安装文件系统(IFS)SDK。 XP,Vista和7支持此功能。

驱动程序编程比普通编程困难得多。你必须对指针更加小心,因为它们有不同的类型(分页/非分页,用户/内核等)。

答案 2 :(得分:1)

如果您设法创建一个完整的文件系统,那么学习驱动程序开发是一个好主意。你需要Windows Driver Kit。 OSR产品比回调文件系统更昂贵,并且它们需要内核模式开发,因此它们不适合您。

请注意,有经验的Windows开发人员需要6到12个月才能创建和调试复杂的内核模式驱动程序(例如文件系统驱动程序或过滤器驱动程序或类似驱动程序)。所以要为很长的开发时间做好准备。

此外,您还必须在C中重写现有的文件系统代码,这将增加您开发解决方案的时间。另一种方法是重新实现Callback File System所做的事情,即调用所有业务逻辑的用户模式代码,但是这个任务与C语言中的代码重写是相当的(在术语中)。

关于http://www.acc.umu.se/~bosse/的说明 - 那里提供的驱动程序几乎需要完全重写。在创建我们的SolFS OS版产品的第一个版本时,我们曾将它们用作指南。但是我们最终完全重写了驱动程序(并且浪费了初始实现的时间)。关于该代码的IP问题也有传言,但我只在OSR邮件列表中阅读它们,所以我不能对此发表评论(如果你对细节感兴趣,OSR有邮件列表档案)。