Windows文件系统

本文关键字:文件系统 Windows | 更新日期: 2023-09-27 18:03:24

我已经在托管c#中完成了归档格式的开发,它太灵活了,不仅仅是一个归档。我想把它当作一个文件系统。

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

如果有可能让Windows识别和使用我的文件系统,我会为了实现它而学习Visual c++。Windows支持自定义文件系统吗?(7是必须的,其他是可选的。)如果是,我该如何制作/执行它们?

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


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

Windows文件系统

嗯,这是可能的,一旦我尝试了这种方法。我基于这些示例:http://www.acc.umu.se/~bosse/

注。你也不需要文件系统,你需要一个驱动程序

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

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

如果您设法创建了一个完整的文件系统,那么学习驱动程序开发是一个很好的主意。您需要Windows驱动程序工具包。OSR产品比回调文件系统贵得多,而且它们需要内核模式的开发,所以它们不会是你的选择。

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

您还必须用C重写现有的文件系统代码,这将增加您开发解决方案的时间。另一种选择是重新实现回调文件系统所做的事情,即为所有业务逻辑调用用户模式代码,但这项任务(术语上)与用c重写代码相当。

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