当您想在 Windows 上创建除 FAT 或 NTFS 之外的新文件系统时,您需要开发文件系统驱动程序。开发在 Windows 上以内核模式工作的设备驱动程序是一项非常技术性的工作。通过使用Dokan,您可以非常轻松地创建自己的文件系统,而无需编写设备驱动程序。 Dokan 类似于 FUSE(用户空间中的 Linux 文件系统),但可以在 Windows 上运行。此外,dokany 还包含一个 FUSE 包装器,可帮助您无需更改即可移植 FUSE 文件系统。
Dokany 是 Dokan 0.6.0 的一个分支,具有错误修复、清晰的更改历史记录并更新为使用最新工具进行构建。
因为原来的 Dokan Legacy (< 0.6.0) 项目不再维护。
从 0.8.0 版本开始,dokany 破坏了与 dokan API 的兼容性。有关详细信息,请参阅选择版本。
随着时间的推移,API 在 1.1.0 和 2.0.0 中再次发生变化。
在空闲环境中针对 v1.5.1.1000 和 v2.0.3.1000 的memfs
样本运行 5 次重复顺序测试多个场景的基准测试,以获得精确的结果。详细结果可以在此处的电子表格中查看。随着 v2 中添加了更好的线程和内存轮询,预计并发场景(如那些测试)将得到更大的改进。
结果示例:
Create New | +13.55% | List | +60.69% | GetAttributes | +48.78% | Read | +18-42% |
Open/Overwrite | +153.41% | ListExactFile | +131.91% | SetAttributes | +120.91% | Write | +10-32% |
RandomOpenClose | +173.05% | | | Delete | +90.83% | | |
Dokan 包含 LGPL 和 MIT 许可的程序。
有关详细信息,请检查许可证文件。
您可以从 https://dokan-dev.github.io 获取源文件
多坎致力于
平台
每个版本都为所有平台提供了签名版本和调试驱动程序。
Dokan 库包含一个用户模式 DLL (dokan2.dll) 和一个内核模式文件系统驱动程序 (dokan2.sys)。一旦安装了Dokan文件系统驱动程序,您就可以创建可以被视为Windows中普通文件系统的文件系统。使用Dokan库创建文件系统的应用程序称为文件系统应用程序。
来自用户程序的文件操作请求(例如,CreateFile、ReadFile、WriteFile...)将被发送到 Windows I/O 子系统(在内核模式下运行),该子系统随后将请求转发到 Dokan 文件系统驱动程序(dokan2.x)。系统)。通过使用 Dokan 用户模式库 (dokan2.dll) 提供的函数,文件系统应用程序能够将回调函数注册到文件系统驱动程序。文件系统驱动程序将调用这些回调例程以响应它收到的请求。回调例程的结果将被发送回用户程序。
例如,当Windows资源管理器请求打开一个目录时,带有Direction选项的CreateFile请求将被发送到Dokan文件系统驱动程序,并且驱动程序将调用文件系统应用程序提供的CreateFile回调。该例程的结果将作为对 CreateFile 请求的响应发送回 Windows 资源管理器。因此,Dokan 文件系统驱动程序充当用户程序和文件系统应用程序之间的代理。这种方法的优点是允许程序员在用户模式下开发文件系统,安全且易于调试。
要了解有关 Dokan 文件系统开发的更多信息,请参阅 和示例,尤其是 dokan_memfs。
简而言之,下载并安装 Visual Studio 2019,在安装过程中选择 Windows 10 SDK 组件或从“工具”菜单中选择并安装 WDK 10
有关详细信息,请参阅构建页面。
最新的官方和签名版本可以从以下位置下载:
choco install dokany2
对于手动安装,请参阅安装页面。
你希望多坎变得更好吗?贡献!
了解代码并在 GitHub 存储库上提出更改建议。
检测缺陷并在 GitHub 问题跟踪器上报告它们。
在 Github 讨论组或 Google 讨论组中提问和回答问题。