Dokany

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

Github stars Tracking Chart

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 讨论组 上提问和回答问题。


Main metrics

Overview
Name With Ownerdokan-dev/dokany
Primary LanguageC
Program languageC (Language Count: 12)
Platform
License:
所有者活动
Created At2014-12-10 12:16:09
Pushed At2025-04-20 23:34:28
Last Commit At2025-04-20 19:09:31
Release Count56
Last Release Namev2.3.0.1000 (Posted on )
First Release Name0.6.0 (Posted on )
用户参与
Stargazers Count5.6k
Watchers Count208
Fork Count682
Commits Count1.7k
Has Issues Enabled
Issues Count931
Issue Open Count85
Pull Requests Count177
Pull Requests Open Count6
Pull Requests Close Count69
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Dokany

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