繁体   English   中英

创建文件系统“驱动程序”

[英]Creating a File System “Driver”

我正在寻找为Windows物理磁盘上的自定义文件系统创建一个“驱动程序”。 我不完全了解解释它的最佳方法,但是该设备已经具有适当的驱动程序,并且所有类似的东西都可以与Windows进行通信,但是我想让用户能够将设备插入他们的PC,将其显示在“我的电脑”中,并为他们提供浏览设备的全面支持。

我意识到,对于一个甚至不问这样的事情的基本知识的人来说,这可能有点吓人,但是我已经拥有了类以及为在我自己的应用程序中读取它而构建的所有内容……我只想让所有内容更加集中,无需最终用户进行更多工作。 有没有人对创建这样的项目有很好的指导?

根据您的描述,我所知道的最接近的东西是可安装的文件系统,例如Ext2可安装的文件系统 ,该文件系统允许Windows计算机与Linux一起使用源自ext2(在某种程度上是ext3)的文件系统。

也许这可以作为您调查的起点。

作为替代方法,还有Shell扩展 ,它比IFS复杂得多。 现在不再使用的GMail Shell扩展使用了这种方法,即使由于GMail的更改而无法使用,它仍然可以作为灵感。

您的选择是:

  1. 创建内核模式文件系统驱动程序。 有经验的开发人员需要9到12个月的工作时间。
  2. 使用框架并在用户模式下执行所有操作。 要使原型正常工作需要花费几周的时间。 这种方法的唯一缺点是,它比内核模式驱动程序慢。 您可以使用上面提到的Dokan,也可以使用我们的Callback File System进行商业级开发。

我认为您需要仔细阅读Windows Driver Kit文档(及相关主题),以准确了解要创建的内容。

如果您打算依靠已经存在的驱动程序,即您不需要实际在内核领域执行代码来与之通信,我建议您看看Windows Dokan的 FUSE

如果确实需要在内核空间中运行并直接与硬件通信,则可能要下载Windows DDK(驱动程序开发套件)。 请记住,与块设备和文件系统通信的驱动程序是分开的,听起来您在谈论文件系统本身。 我相信,您在内核空间中运行的任何内容都无法访问c ++运行时,这意味着您只能将c ++的子集用于内核驱动程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM