WinFsp·Windows文件系统代理

Windows 文件系统代理 -- Windows 的 FUSE。「Windows File System Proxy - FUSE for Windows」

Github stars Tracking Chart

WinFsp·Windows文件系统代理

查看我的新内核驱动程序项目 WinSpd

WinFsp 是 Windows 计算机的一组软件组件,允许创建用户模式文件系统。从这个意义上讲,它类似于 FUSE(用户空间中的文件系统),后者在类似 UNIX 的计算机上提供相同的功能。

好处

稳定性

WinFsp 非常稳定。没有已知的内核模式崩溃,它也不会遭受资源泄漏或类似问题的困扰。WinFsp 的这种稳定性归功于其设计和严格的测试体系

性能

WinFsp 胜过竞争对手,并且在许多情况下的性能都优于 NTFS。了解有关其性能的更多信息。

兼容性

WinFsp 致力于与 NTFS 的兼容性和文件系统的正确性。有关完整的详细信息,请参见兼容性文档。

易于使用

WinFsp 具有易于使用但功能全面的 API。

  • 这个简单的教程说明了如何构建文件系统。
  • 请查阅 API 参考以进行本机开发。
  • 包括用于托管开发的 .NET 层。参见 src/dotnet
  • 包括 FUSE 2.8 兼容性层:fuse/fuse.h
  • 包括 FUSE 3.2 兼容性层:fuse3/fuse.h

其他福利

  • 每个版本上都提供了签名驱动程序。
  • 根据 GPLv3 许可提供,但免费/自由和开源软件有特殊例外。

要了解有关WinFsp的更多信息,请访问其网站:http://www.secfs.net/winfsp/

项目组织

项目源代码的组织如下:

  • file_folder build/VStudio:WinFsp解决方案和项目文件。
  • file_folder doc:WinFsp设计文档和其他文档可在此处找到。
  • file_folder ext:外部依赖项。
    • file_folder ext/tlib:最初来自secfs(安全云文件系统)项目的小型测试库。
    • file_folder ext/test:指向secfs.test项目的子模块,该项目包含许多用于测试 Windows 和 POSIX 文件系统的工具。
  • file_folder inc:公共头文件。
  • file_folder src:WinFsp 的源代码。
    • file_folder src/dll:WinFsp DLL 的源代码。
    • file_folder src/dll/fuse:FUSE 兼容性层的源代码。
    • file_folder src/dll/fuse3:FUSE3 兼容性层的源代码。
    • file_folder src/dotnet:.NET层的源代码。
    • file_folder src/fsptool:fsptool命令行实用程序的源代码。
    • file_folder src/ku:可以在内核或用户模式下使用的源代码。
    • file_folder src/launcher:启动器服务和launchctl实用程序的源代码。
    • file_folder src/sys:WinFsp FSD 的源代码。
  • file_folder opt/cygfuse:Cygwin 软件包的 FUSE 的源代码。
  • file_folder tst:示例文件系统和测试套件的源代码。
  • file_folder tools:用于构建和测试 WinFsp 的各种工具。

构建和运行

为了构建 WinFsp,您将需要以下内容:

  • Visual Studio 2015-2019
  • Windows 驱动程序工具包(WDK)10
    • 注意:在 Visual Studio 2015 中使用最新的 WDK(Windows 10.0.18362.1)时,可能会收到有关缺少任务 ValidateNTTargetVersion的错误。解决方法是编辑文件 \Program Files (x86)\Windows Kits\10\build\WindowsDriver.Common.targets 并修改ValidateNTTargetVersion 的 UsingTask 行,如下所示:
  • Wix toolset

要完全构建 WinFsp(包括安装程序),必须使用 tools\build.bat。默认情况下,它会构建一个 Release 版本,但是您可以使用以下语法选择 Debug 或 Release 配置:

tools\build.bat CONFIGURATION

如果您自己构建驱动程序,它将不会被签名,Windows 将拒绝加载它,除非您启用“testsigning”。您可以使用命令 bcdedit.exe -set testsigning on 启用 “testsigning”。有关更多信息,请参阅此文档

WinFsp 设计为在 Windows 7 及更高版本上运行。已在以下平台上进行了测试:

  • Windows 7 Enterprise
  • Windows 8 Pro
  • Windows Server 2012
  • Windows 10 Pro
  • Windows Server 2016

如何帮助

我正在以下领域寻求帮助:

  • 如果您有在 FUSE 上运行的文件系统,请考虑将其移植到 WinFsp。 WinFsp 具有本机 API,但也具有 FUSE(高级)API。
  • 如果您使用的是 C/C++ 以外的语言(例如 Delphi,Java 等),并且对移植/包装 WinFsp 感兴趣,我希望收到您的来信。
  • GitHub 存储库中列出了许多未解决的问题。其中许多要求具备 Windows 内核模式的知识,并了解 WinFsp 的内部原理,因此它们不适合胆小的人使用。

在任何情况下,我都可以提供想法和/或支持。

在哪里讨论

如果您想讨论 WinFsp,现在有两个选择:

许可

WinFsp 在 GPLv3 许可下可用,但 Free/Libre 和开源软件有特殊例外。也可以提供商业许可证。请联系 Bill Zissimopoulos <billziss at navimatics.com> 了解更多详细信息。

(The first version translated by vz on 2020.08.08)

Main metrics

Overview
Name With Ownerwinfsp/winfsp
Primary LanguageC
Program languageC++ (Language Count: 11)
PlatformWindows
License:Other
所有者活动
Created At2016-05-18 21:05:28
Pushed At2025-04-28 15:30:07
Last Commit At2025-04-25 20:18:21
Release Count74
Last Release Namev2.1B2 (Posted on 2024-09-11 14:49:11)
First Release Namev0.9 (Posted on 2016-04-25 20:05:37)
用户参与
Stargazers Count7.5k
Watchers Count142
Fork Count532
Commits Count3.1k
Has Issues Enabled
Issues Count502
Issue Open Count78
Pull Requests Count33
Pull Requests Open Count0
Pull Requests Close Count13
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private