1
0
mirror of https://github.com/winfsp/winfsp.git synced 2025-12-19 18:49:08 -06:00

Compare commits

..

20 Commits

Author SHA1 Message Date
Bill Zissimopoulos
4045ce2d19 Merge pull request #625 from tomgr/doc-add-buildbarn
doc: add bb-remote-execution to known file systems
2025-08-21 15:32:40 +03:00
Thomas Gibson-Robinson
5d8c692845 doc: add bb-remote-execution to known file systems 2025-08-20 09:55:16 +01:00
Bill Zissimopoulos
5b429bc445 Merge pull request #614 from chenjie4255/flush_on_cleanup
dll: Added FlushOnCleanup fuse param
2025-08-07 16:55:11 +03:00
Bill Zissimopoulos
facd4bb9c4 Merge pull request #613 from chenjie4255/patch-1
Update Contributors.asciidoc
2025-08-07 16:54:31 +03:00
ethan
e4ceb9010b moved FlushOnCleanup from VolumeParam to struct fuse 2025-08-07 15:30:07 +08:00
Bill Zissimopoulos
d6444da2ef Merge pull request #617 from coderall2/fix_path_convert_bug
Fix: fix FspPosixMapPosixToWindowsPathEx pointer misuse
2025-08-06 18:19:19 +03:00
coderall2
b088221c82 Update Contributors.asciidoc with real name 2025-08-06 10:19:17 +08:00
coderall2
8f01618fad Update Contributors.asciidoc 2025-07-02 13:43:55 +08:00
coderall2
7e861c30ac Fix: fix FspPosixMapPosixToWindowsPathEx pointer misuse 2025-07-02 13:30:12 +08:00
ethan
1e5455653d Added "Ethan Chan" to the Contributors.asciidoc 2025-06-20 15:03:58 +08:00
ethan
c8e182e1d4 sys & dll: Added FlushOnCleanup volume param 2025-06-20 14:56:01 +08:00
Bill Zissimopoulos
ddca7bd548 sys: driver.inf: PnpLockdown=1 2025-06-05 16:02:43 +01:00
Bill Zissimopoulos
d3700d3593 build: version: 2025 2025-05-15 20:35:01 +01:00
Bill Zissimopoulos
c8366af48c update source copyright for 2025 2025-05-15 20:33:31 +01:00
Bill Zissimopoulos
44c621c0de changelog: 2025 2025-05-15 20:23:06 +01:00
Bill Zissimopoulos
a2cd6978be sys: CcDeferWrite fix 2025-05-15 12:46:00 +01:00
Bill Zissimopoulos
d75e9f7ee6 sys: oplock fix 2025-05-08 21:47:06 +01:00
Bill Zissimopoulos
6803bb4136 tools: build.bat: fix target SDK for AppVeyor 2025-04-25 20:18:21 +01:00
Bill Zissimopoulos
fb14262e43 build: support VS2019 builds and also latest SDK/WDK builds 2025-04-25 19:51:21 +01:00
Bill Zissimopoulos
4fdec4d37f sys: FspFsvolCreate, FspFsvolSetSecurity: absolute security descriptors
Some third party filters send us security descriptors in absolute rather
than self-relative format. Handle this case by converting them to self-
relative format ourselves.
2024-10-10 12:34:04 +01:00
190 changed files with 304 additions and 216 deletions

View File

@@ -1,6 +1,17 @@
# Changelog
## v2.1 (2025)
- [FIX] Fixes a compatibility problem with certain AntiVirus products (e.g. Trend Micro).
- [FIX] Fixes a couple of rare BSODs on recent versions of Windows 11. See commits a482183, a2cd697 for details.
- [FIX] Fixes a rare problem when using `NtCreateFile` to perform "relative" opens on a network drive (see GitHub issue #561).
- [FIX] Fixes a racing issue with two processes competing to start the FSD discovered during testing.
## v2.1B2 (2024 Beta2)
- [FIX] Fixes a rare BSOD on recent versions of Windows. See commit a482183 for details.

View File

@@ -60,6 +60,7 @@ CONTRIBUTOR LIST
|Brett Dutro |brett.dutro at gmail.com
|Changjian Gao (Juicedata, https://juicefs.com) |gcj at juicedata.io
|Colin Atkinson (Atakama, https://atakama.com) |colin at atakama.com
|Ethan Chan (Juicedata, https://juicefs.com) |ethan at juicedata.io
|Felix Croes |felix at dworkin.nl
|Francois Karam (KS2, http://www.ks2.fr) |francois.karam at ks2.fr
|Fritz Elfert |fritz-github at fritz-elfert.de
@@ -73,7 +74,9 @@ CONTRIBUTOR LIST
|Ronny Chan |ronny at ronnychan.ca
|Sam Kelly (DuroSoft Technologies LLC, https://durosoft.com) |sam at durosoft.com
|Santiago Ganis |sganis at gmail.com
|Thomas Gibson-Robinson |tom at cocotec.io
|Tobias Urlaub |saibotu at outlook.de
|Victor Gao |victgm at outlook.com
|Zeho Huang |zeho11 at protonmail.com
|Zhangfen Duan |lzcgwushuang at 163.com
|===

View File

@@ -3,7 +3,7 @@
<Import Project="$(MsbuildThisFileDirectory)\build.version.props" />
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>NTDDI_VERSION=0x06010000;_WIN32_WINNT=0x0601;MyProductName=$(MyProductName);MyProductFileName=$(MyProductFileName);MyDescription=$(MyDescription);MyCompanyName=$(MyCompanyName);MyCopyright=$(MyCopyright);MyProductVersion=$(MyProductVersion);MyProductStage=$(MyProductStage);MyVersion=$(MyVersion);MyVersionWithCommas=$(MyVersionWithCommas);MyFullVersion=$(MyFullVersion);MyFspFsctlDeviceClassGuid=$(MyFspFsctlDeviceClassGuid);MyFspFsvrtDeviceClassGuid=$(MyFspFsvrtDeviceClassGuid);MyFsctlRegisterPath=$(MyFsctlRegisterPath);MyNpRegisterPath=$(MyNpRegisterPath);MyEventLogRegisterPath=$(MyEventLogRegisterPath)</PreprocessorDefinitions>
<PreprocessorDefinitions>NTDDI_VERSION=$(MyNtddiVersion);_WIN32_WINNT=$(MyWin32Version);MyProductName=$(MyProductName);MyProductFileName=$(MyProductFileName);MyDescription=$(MyDescription);MyCompanyName=$(MyCompanyName);MyCopyright=$(MyCopyright);MyProductVersion=$(MyProductVersion);MyProductStage=$(MyProductStage);MyVersion=$(MyVersion);MyVersionWithCommas=$(MyVersionWithCommas);MyFullVersion=$(MyFullVersion);MyFspFsctlDeviceClassGuid=$(MyFspFsctlDeviceClassGuid);MyFspFsvrtDeviceClassGuid=$(MyFspFsvrtDeviceClassGuid);MyFsctlRegisterPath=$(MyFsctlRegisterPath);MyNpRegisterPath=$(MyNpRegisterPath);MyEventLogRegisterPath=$(MyEventLogRegisterPath)</PreprocessorDefinitions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>MyProductName=$(MyProductName);MyProductFileName=$(MyProductFileName);MyDescription=$(MyDescription);MyCompanyName=$(MyCompanyName);MyCopyright=$(MyCopyright);MyProductVersion=$(MyProductVersion);MyProductStage=$(MyProductStage);MyVersion=$(MyVersion);MyVersionWithCommas=$(MyVersionWithCommas);MyFullVersion=$(MyFullVersion);MyFspFsctlDeviceClassGuid=$(MyFspFsctlDeviceClassGuid);MyFspFsvrtDeviceClassGuid=$(MyFspFsvrtDeviceClassGuid);MyFsctlRegisterPath=$(MyFsctlRegisterPath);MyNpRegisterPath=$(MyNpRegisterPath);MyEventLogRegisterPath=$(MyEventLogRegisterPath)</PreprocessorDefinitions>

View File

@@ -20,8 +20,8 @@
<MyCanonicalVersion>2.1</MyCanonicalVersion>
<MyProductVersion>2024 Beta2</MyProductVersion>
<MyProductStage>Beta</MyProductStage>
<MyProductVersion>2025</MyProductVersion>
<MyProductStage>Gold</MyProductStage>
<MyCrossCert>DigiCertGlobalG3CodeSigningECCSHA3842021CA1.cer</MyCrossCert>
<MyCertIssuer>DigiCert</MyCertIssuer>
@@ -72,5 +72,22 @@
<MyFsctlRegisterPath>"."</MyFsctlRegisterPath>
<MyNpRegisterPath>"."</MyNpRegisterPath>
<MyEventLogRegisterPath>"."</MyEventLogRegisterPath>
<!--
Target SDK/WDK version
For VS2019 builds (supports Win7/Win8/Win10+ x86/x64/a64):
MyTargetPlatformVersion = 10.0.19041.0
MyNtddiVersion = 0x06010000
MyWin32Version = 0x0601
For latest SDK/WDK builds (supports Win10+ x64/a64):
MyTargetPlatformVersion = $(LatestTargetPlatformVersion)
MyNtddiVersion = 0x0A000006
MyWin32Version = 0x0A00
-->
<MyTargetPlatformVersion>10.0.19041.0</MyTargetPlatformVersion>
<MyNtddiVersion>0x06010000</MyNtddiVersion>
<MyWin32Version>0x0601</MyWin32Version>
</PropertyGroup>
</Project>

View File

@@ -1,7 +1,7 @@
/**
* @file CustomActions.cpp
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -15,7 +15,7 @@
<ProjectGuid>{95C223E6-B5F1-4FD0-9376-41CDBC824445}</ProjectGuid>
<RootNamespace>CustomActions</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

View File

@@ -31,7 +31,7 @@
<ProjectGuid>{C4E1E9E5-0959-488E-8C6A-C327CC81BEFB}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>fsbench</RootNamespace>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

View File

@@ -31,7 +31,7 @@
<ProjectGuid>{10757011-749D-4954-873B-AE38D8145472}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>fscrash</RootNamespace>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

View File

@@ -31,7 +31,7 @@
<ProjectGuid>{AA7190E8-877F-4827-8CDD-E0D85F83C8C1}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>memfs</RootNamespace>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<ProjectName>memfs</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

View File

@@ -31,7 +31,7 @@
<ProjectGuid>{262DF8CC-E7A8-4460-A22C-683CBA322C32}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>winfsptests</RootNamespace>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

View File

@@ -31,7 +31,7 @@
<ProjectGuid>{1E997BEC-1642-4A5C-B252-852DA094E11E}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>fsptool</RootNamespace>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

View File

@@ -31,7 +31,7 @@
<ProjectGuid>{264A5D09-126F-4760-A3F1-4B3B95C925AA}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>launchctl</RootNamespace>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

View File

@@ -31,7 +31,7 @@
<ProjectGuid>{6CDF9411-B852-4EAC-822D-8F930675F17B}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>launcher</RootNamespace>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

View File

@@ -163,7 +163,7 @@ copy /b $(OutDir)fuse3-$(MyProductFileArch).pc + %(FullPath) $(OutDir)fuse3-$(My
<ProjectGuid>{4A7C0B21-9E10-4C81-92DE-1493EFCF24EB}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>winfspdll</RootNamespace>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<ProjectName>winfsp.dll</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

View File

@@ -35,7 +35,7 @@
<Configuration>Debug</Configuration>
<Platform Condition="'$(Platform)' == ''">Win32</Platform>
<RootNamespace>winfsp</RootNamespace>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<ProjectName>winfsp.sys</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

View File

@@ -5,6 +5,7 @@ This document contains a list of known open-source file systems and file system
== File Systems
- https://github.com/wesley1975/blobfs-win[blobfs-win] - The native porting of the blobfs on the windows platform, blobfs can help you mount the Azure Blob storage as the local disk driver, no matter it is a Linux system or a Windows system.
- https://github.com/buildbarn/bb-remote-execution[buildbarn] - A bazel-compatible remote execution service that uses WinFSP to provide a virtual directory for performing builds
- https://github.com/cryptomator/cryptomator[Cryptomator] - Multi-platform transparent client-side encryption of your files in the cloud
- https://github.com/vgough/encfs[EncFS] - an Encrypted Filesystem for FUSE
- https://github.com/lowleveldesign/fsmemfs[fsmemfs] - Memory File System written in F#
@@ -28,6 +29,7 @@ This document contains a list of known open-source file systems and file system
== File System Libraries
- https://github.com/winfsp/cgofuse[Go: cgofuse] - Cross-platform FUSE library for Go
- https://github.com/aegistudio/go-winfsp[Go: go-winfsp] - WinFSP bindings for Go
- https://github.com/SerCeMan/jnr-fuse[Java: jnr-fuse] - FUSE implementation in Java using Java Native Runtime (JNR)
- https://github.com/jnr-winfsp-team/jnr-winfsp[Java: jnr-winfsp] - A Java binding for WinFsp using Java Native Runtime (JNR)
- https://github.com/billziss-gh/fusepy[Python: fusepy] - Simple ctypes bindings for FUSE

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/callstack.c
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
#include <tlib/callstack.h>

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/callstack.h
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
#ifndef TLIB_CALLSTACK_H_INCLUDED

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/injected/allfunc.h
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
#ifndef TLIB_INJECTED_ALLFUNC_H_INCLUDED

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/injected/curlfunc.c
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
#include <tlib/injected/curlfunc.h>

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/injected/curlfunc.h
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
#ifndef TLIB_INJECTED_CURLFUNC_H_INCLUDED

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/injected/stdfunc.c
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
#include <tlib/injected/stdfunc.h>

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/injected/stdfunc.h
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
#ifndef TLIB_INJECTED_STDFUNC_H_INCLUDED

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/injection.c
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
#include <tlib/injection.h>

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/injection.h
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
/* NOTE: This header may usefully be included multiple times.

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/testsuite.c
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
#include <tlib/testsuite.h>

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/testsuite.h
*
* @copyright 2014-2024 Bill Zissimopoulos
* @copyright 2014-2025 Bill Zissimopoulos
*/
#ifndef TLIB_TESTSUITE_H_INCLUDED

View File

@@ -6,7 +6,7 @@
* FUSE: Filesystem in Userspace
* Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -6,7 +6,7 @@
* FUSE: Filesystem in Userspace
* Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -6,7 +6,7 @@
* FUSE: Filesystem in Userspace
* Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -2,7 +2,7 @@
* @file fuse/winfsp_fuse.h
* WinFsp FUSE compatible API.
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -6,7 +6,7 @@
* FUSE: Filesystem in Userspace
* Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -6,7 +6,7 @@
* FUSE: Filesystem in Userspace
* Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -2,7 +2,7 @@
* @file fuse3/fuse_opt.h
* WinFsp FUSE3 compatible API.
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -2,7 +2,7 @@
* @file fuse3/winfsp_fuse.h
* WinFsp FUSE3 compatible API.
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file winfsp/fsctl.h
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -5,7 +5,7 @@
* In order to use the WinFsp Launch API a program must include &lt;winfsp/launch.h&gt;
* and link with the winfsp_x64.dll (or winfsp_x86.dll) library.
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -5,7 +5,7 @@
* In order to use the WinFsp API the user mode file system must include &lt;winfsp/winfsp.h&gt;
* and link with the winfsp_x64.dll (or winfsp_x86.dll) library.
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -2,7 +2,7 @@
* @file winfsp/winfsp.hpp
* WinFsp C++ Layer.
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/debug.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/debuglog.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/dirbuf.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/eventlog.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fs.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fsctl.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fsop.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/fuse.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -98,6 +98,7 @@ static struct fuse_opt fsp_fuse_core_opts[] =
FSP_FUSE_CORE_OPT("VolumeInfoTimeout=", set_VolumeInfoTimeout, 1),
FSP_FUSE_CORE_OPT("VolumeInfoTimeout=%d", VolumeParams.VolumeInfoTimeout, 0),
FSP_FUSE_CORE_OPT("KeepFileCache=", set_KeepFileCache, 1),
FSP_FUSE_CORE_OPT("FlushOnCleanup=", set_FlushOnCleanup, 1),
FSP_FUSE_CORE_OPT("LegacyUnlinkRename=", set_LegacyUnlinkRename, 1),
FSP_FUSE_CORE_OPT("ThreadCount=%u", ThreadCount, 0),
FUSE_OPT_KEY("UNC=", 'U'),
@@ -880,7 +881,7 @@ FSP_FUSE_API struct fuse *fsp_fuse_new(struct fsp_fuse_env *env,
opt_data.VolumeParams.ReparsePointsAccessCheck = FALSE;
opt_data.VolumeParams.NamedStreams = FALSE;
opt_data.VolumeParams.ReadOnlyVolume = FALSE;
opt_data.VolumeParams.PostCleanupWhenModifiedOnly = TRUE;
opt_data.VolumeParams.PostCleanupWhenModifiedOnly = !opt_data.set_FlushOnCleanup;
opt_data.VolumeParams.PassQueryDirectoryFileName = TRUE;
opt_data.VolumeParams.DeviceControl = TRUE;
#if defined(FSP_CFG_REJECT_EARLY_IRP)
@@ -905,6 +906,7 @@ FSP_FUSE_API struct fuse *fsp_fuse_new(struct fsp_fuse_env *env,
f->rellinks = opt_data.rellinks;
f->dothidden = opt_data.dothidden;
f->ThreadCount = opt_data.ThreadCount;
f->FlushOnCleanup = !!opt_data.set_FlushOnCleanup;
memcpy(&f->ops, ops, opsize);
f->data = data;
f->DebugLog = opt_data.debug ? -1 : 0;

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/fuse_compat.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/fuse_intf.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -1305,6 +1305,7 @@ static VOID fsp_fuse_intf_Cleanup(FSP_FILE_SYSTEM *FileSystem,
{
struct fuse *f = FileSystem->UserContext;
struct fsp_fuse_file_desc *filedesc = FileDesc;
struct fuse_file_info fi;
/*
* In Windows a DeleteFile/RemoveDirectory is the sequence of the following:
@@ -1331,6 +1332,14 @@ static VOID fsp_fuse_intf_Cleanup(FSP_FILE_SYSTEM *FileSystem,
* LegacyUnlinkRename option to opt out of the POSIX unlink semantics.
*/
if (f->FlushOnCleanup && !filedesc->IsDirectory && !filedesc->IsReparsePoint) {
memset(&fi, 0, sizeof fi);
fi.flags = filedesc->OpenFlags;
fi.fh = filedesc->FileHandle;
if (0 != f->ops.flush)
f->ops.flush(filedesc->PosixPath, &fi);
}
if (Flags & FspCleanupDelete)
if (filedesc->IsDirectory && !filedesc->IsReparsePoint)
{
@@ -1366,7 +1375,7 @@ static VOID fsp_fuse_intf_Close(FSP_FILE_SYSTEM *FileSystem,
}
else
{
if (0 != f->ops.flush)
if (!f->FlushOnCleanup && 0 != f->ops.flush)
f->ops.flush(filedesc->PosixPath, &fi);
if (0 != f->ops.release)
f->ops.release(filedesc->PosixPath, &fi);

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/fuse_loop.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/fuse_main.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/fuse_opt.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/library.h
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -63,6 +63,7 @@ struct fuse
unsigned conn_want;
BOOLEAN fsinit;
BOOLEAN has_symlinks, has_slashdot;
BOOLEAN FlushOnCleanup;
UINT32 DebugLog;
FSP_FILE_SYSTEM_OPERATION_GUARD_STRATEGY OpGuardStrategy;
FSP_FSCTL_VOLUME_PARAMS VolumeParams;
@@ -156,6 +157,7 @@ struct fsp_fuse_core_opt_data
set_EaTimeout,
set_VolumeInfoTimeout,
set_KeepFileCache,
set_FlushOnCleanup,
set_LegacyUnlinkRename;
unsigned ThreadCount;
FSP_FSCTL_VOLUME_PARAMS VolumeParams;

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse3/fuse2to3.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse3/fuse3.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/fuse3_compat.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse3/library.h
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/launch.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/ldap.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/library.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/library.h
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/mount.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/np.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/ntstatus.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/path.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/security.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/service.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/sxs.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/util.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/wksid.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/*
* dotnet/FileSystemBase+Const.cs
*
* Copyright 2015-2024 Bill Zissimopoulos
* Copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/*
* dotnet/FileSystemBase.cs
*
* Copyright 2015-2024 Bill Zissimopoulos
* Copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/*
* dotnet/FileSystemHost.cs
*
* Copyright 2015-2024 Bill Zissimopoulos
* Copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/*
* dotnet/Interop.cs
*
* Copyright 2015-2024 Bill Zissimopoulos
* Copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/*
* dotnet/Service.cs
*
* Copyright 2015-2024 Bill Zissimopoulos
* Copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file fsptool/fsptool.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file launcher/launchctl.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file launcher/launcher.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file launcher/ptrans.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -4,7 +4,7 @@
* Shared kernel/user configuration. This file is to be included by the
* FSD and DLL components ONLY!
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file shared/ku/library.h
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file shared/ku/mountmgr.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -14,7 +14,7 @@
* [SNAME]
* https://www.cygwin.com/cygwin-ug-net/using-specialnames.html
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -1416,7 +1416,7 @@ FSP_API NTSTATUS FspPosixMapPosixToWindowsPathEx(const char *PosixPath, PWSTR *P
goto lasterror;
WindowsPath = MemAlloc(Size * sizeof(WCHAR));
if (0 == PosixPath)
if (0 == WindowsPath)
{
Result = STATUS_INSUFFICIENT_RESOURCES;
goto exit;

View File

@@ -1,7 +1,7 @@
/**
* @file shared/ku/uuid5.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file shared/um/minimal.h
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -2,7 +2,7 @@
* @file sys/callbacks.c
* Fast I/O and resource acquisition callbacks.
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file sys/cleanup.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -242,7 +242,6 @@ static VOID FspFsvolCleanupRequestFini(FSP_FSCTL_TRANSACT_REQ *Request, PVOID Co
FspFileNodeReleaseOwner(FileNode, Pgio, Request);
FspFileNodeCleanupComplete(FileNode, FileObject, !!Request->Req.Cleanup.Delete);
if (!FileNode->IsDirectory)
FspFileNodeOplockCheck(FileNode, Irp);
SetFlag(FileObject->Flags, FO_CLEANUP_COMPLETE);

View File

@@ -1,7 +1,7 @@
/**
* @file sys/close.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -75,6 +75,9 @@ static NTSTATUS FspFsvolClose(
ASSERT(FileNode == FileDesc->FileNode);
if (!FlagOn(FileObject->Flags, FO_CLEANUP_COMPLETE))
FspFileNodeOplockCheck(FileNode, Irp);
/* create the user-mode file system request; MustSucceed because IRP_MJ_CLOSE cannot fail */
FspIopCreateRequestMustSucceed(0, 0, 0, &Request);
Request->Kind = FspFsctlTransactCloseKind;

View File

@@ -1,7 +1,7 @@
/**
* @file sys/create.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -298,6 +298,8 @@ static NTSTATUS FspFsvolCreateNoLock(
ULONG CreateOptions = IrpSp->Parameters.Create.Options;
USHORT FileAttributes = IrpSp->Parameters.Create.FileAttributes;
PSECURITY_DESCRIPTOR SecurityDescriptor = AccessState->SecurityDescriptor;
BOOLEAN SecurityDescriptorRelative = 0 != SecurityDescriptor &&
BooleanFlagOn(((SECURITY_DESCRIPTOR *)SecurityDescriptor)->Control, SE_SELF_RELATIVE);
ULONG SecurityDescriptorSize = 0;
UINT64 AllocationSize = Irp->Overlay.AllocationSize.QuadPart;
UINT64 AllocationUnit;
@@ -406,7 +408,10 @@ static NTSTATUS FspFsvolCreateNoLock(
if (!RtlValidSecurityDescriptor(SecurityDescriptor))
return STATUS_INVALID_PARAMETER;
#endif
if (SecurityDescriptorRelative)
SecurityDescriptorSize = RtlLengthSecurityDescriptor(SecurityDescriptor);
else
RtlAbsoluteToSelfRelativeSD(SecurityDescriptor, 0, &SecurityDescriptorSize);
}
/* align allocation size */
@@ -702,8 +707,18 @@ static NTSTATUS FspFsvolCreateNoLock(
/* copy the security descriptor (if any) into the request */
if (0 != SecurityDescriptorSize)
RtlCopyMemory(Request->Buffer + Request->Req.Create.SecurityDescriptor.Offset,
SecurityDescriptor, SecurityDescriptorSize);
{
if (SecurityDescriptorRelative)
RtlCopyMemory(
Request->Buffer + Request->Req.Create.SecurityDescriptor.Offset,
SecurityDescriptor,
SecurityDescriptorSize);
else
RtlAbsoluteToSelfRelativeSD(
SecurityDescriptor,
(PSECURITY_DESCRIPTOR)(Request->Buffer + Request->Req.Create.SecurityDescriptor.Offset),
&SecurityDescriptorSize);
}
/* copy the extra buffer (if any) into the request */
if (0 != ExtraBuffer)

View File

@@ -1,7 +1,7 @@
/**
* @file sys/debug.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file sys/devctl.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file sys/device.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file sys/devtimer.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file sys/dirctl.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file sys/driver.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file sys/driver.h
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -2,6 +2,7 @@
Signature = "$WINDOWS NT$"
Class = Volume
ClassGuid = {71a27cdd-812a-11d0-bec7-08002be2092f}
PnpLockdown = 1
CatalogFile = !CatalogFile!
Provider = !Provider!

View File

@@ -1,7 +1,7 @@
/**
* @file sys/ea.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file sys/file.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file sys/fileinfo.c
*
* @copyright 2015-2024 Bill Zissimopoulos
* @copyright 2015-2025 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

Some files were not shown because too many files have changed in this diff Show More