Dokany

使用 FUSE Wrapper 的 Windows 用户模式文件系统库。「User mode file system library for windows with FUSE Wrapper」

Github星跟踪图

Dokany

什么是 Dokan

当你想在 Windows 上创建一个新的文件系统,而不是 FAT 或 NTFS,你需要开发一个文件系统驱动程序。开发一个能在 windows 内核模式下工作的设备驱动程序是非常有技术含量的。通过使用 Dokan,你可以非常容易地创建自己的文件系统,而无需编写设备驱动程序。Dokan 类似于 FUSE(用户空间中的 Linux 文件系统),但在 Windows 上工作。此外,Dokany 还包含了一个 FUSE wrapper,可以帮助你在不改变 FUSE 文件系统的情况下进行移植。

什么是 Dokany

Dokany 是 Dokan 0.6.0 的一个分叉,它修复了 Bug,清理了变更历史,并更新为使用最新的工具构建。

因为原来的 Dokan Legacy(<0.6.0)项目已经不再维护。

从 0.8.0 版本开始,dokany 破坏了与 dokan API 的兼容性。更多信息请参见 选择一个版本

每一个版本都会提供签名的 x86 /x64 / ARM / ARM64 驱动。

许可证

Dokan 包含 LGPL 和 MIT 授权的程序。

  • 用户模式库 (dokan1.dll) LGPL
  • 驱动(dokan1.sys)LGPL
  • 网络库(dokannp1.dll) LGPL
  • fuse 库(dokanfuse1.dll) LGPL
  • 安装程序(DokanSetup.exe)LGPL
  • 控制程序 (dokanctl.exe) MIT
  • 例子(mirror.exe / memfs.exe) MIT

详情请查看许可证文件。

  • LGPL license.lgpl.txt
  • MIT license.mit.txt

您可以从 https://dokan-dev.github.io 获取源文件。

环境

Dokan 可工作于以下操作系统:

  • Windows Server 2019
  • Windows Server 2016
  • Windows 10
  • Windows Server 2012 R2
  • Windows 8.1
  • Windows Server 2012
  • Windows 8
  • Windows Server 2008 R2 SP1
  • Windows 7 SP1

平台

  • x86
  • x64
  • ARM
  • ARM64

它是如何工作的

Dokan 库包含一个用户模式的 DLL(dokan1.dll)和一个内核模式的文件系统驱动(dokan1.sys)。一旦安装了 Dokan 文件系统驱动,就可以创建文件系统,这些文件系统在 Windows 中可以看作是普通的文件系统。使用 Dokan 库创建文件系统的应用程序称为文件系统应用程序。

来自用户程序的文件操作请求(如:CreateFile、ReadFile、WriteFile......)将被发送到 Windows I/O 子系统(在内核模式下运行),随后该子系统将把请求转发给 Dokan 文件系统驱动程序(dokan1.sys)。通过使用 Dokan 用户模式库(dokan1.dll)提供的函数,文件系统应用程序能够向文件系统驱动程序注册回调函数。文件系统驱动程序将调用这些回调例程,以响应收到的请求。回调例程的结果将被发回给用户程序。

例如,当 Windows 资源管理器请求打开一个目录时,带方向选项的 CreateFile 请求将被发送到 Dokan 文件系统驱动程序,驱动程序将调用文件系统应用程序提供的 CreateFile 回调。这个例程的结果作为 CreateFile 请求的响应被送回给 Windows Explorer。因此,Dokan 文件系统驱动程序充当了用户程序和文件系统应用程序之间的代理。这种方法的优点是它允许程序员在用户模式下开发文件系统,既安全又易于调试。

要了解更多关于 Dokan 文件系统开发的信息,请参见 API 文档和 例子,尤其是 dokan_memfs

构建

简单来说,下载并安装 Visual Studio 2019,在安装过程中选择 Windows 10 SDK 组件或从工具菜单中选择并安装 WDK 10

详情请看 构建页面

安装

手动安装,请参阅 installation page

贡献

你想让道馆变得更好吗?贡献吧

学习代码并在 GitHub repository 中提出您的修改建议。

GitHub 问题跟踪器 上检测缺陷并报告。

Github DiscussionsGoogle 讨论组 上提问和回答问题。


主要指标

概览
名称与所有者dokan-dev/dokany
主编程语言C
编程语言C (语言数: 12)
平台
许可证
所有者活动
创建于2014-12-10 12:16:09
推送于2025-04-20 23:34:28
最后一次提交2025-04-20 19:09:31
发布数56
最新版本名称v2.3.0.1000 (发布于 )
第一版名称0.6.0 (发布于 )
用户参与
星数5.5k
关注者数207
派生数678
提交数1.7k
已启用问题?
问题数925
打开的问题数86
拉请求数177
打开的拉请求数5
关闭的拉请求数69
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?

Dokany

Build status
Quality Gate Status
Coverity Scan
Codacy Badge
CII Best Practices
FOSSA Status