Compare commits

..

1 Commits

Author SHA1 Message Date
Bill Zissimopoulos
9db17294da sys: FspFsvolQueryDirectoryCopyCache: check DirInfoCacheHint against DirInfoSize 2024-08-21 11:29:37 +01:00
191 changed files with 219 additions and 318 deletions

View File

@@ -1,26 +1,6 @@
# 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.
- [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.1B1 (2024 Beta1)
- [FIX] Fixes a rare BSOD on recent versions of Windows. See commit a482183 for details.

View File

@@ -60,7 +60,6 @@ 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
@@ -68,15 +67,12 @@ CONTRIBUTOR LIST
|John Oberschelp |john at oberschelp.net
|John Tyner |jtyner at gmail.com
|Konstantinos Karakostas |noiredev at protonmail.com
|Naoki Ikeguchi |me at s6n.jp
|Paweł Wegner (Google LLC, https://google.com) |lemourin at google.com
|Pedro Frejo (Arpa System, https://arpasystem.com) |pedro.frejo at arpasystem.com
|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=$(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>
<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>
</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>2025</MyProductVersion>
<MyProductStage>Gold</MyProductStage>
<MyProductVersion>2024 Beta1</MyProductVersion>
<MyProductStage>Beta</MyProductStage>
<MyCrossCert>DigiCertGlobalG3CodeSigningECCSHA3842021CA1.cer</MyCrossCert>
<MyCertIssuer>DigiCert</MyCertIssuer>
@@ -72,22 +72,5 @@
<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-2025 Bill Zissimopoulos
* @copyright 2015-2024 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>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</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>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</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>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</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>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</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>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</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>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</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>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</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>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</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>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</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>$(MyTargetPlatformVersion)</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<ProjectName>winfsp.sys</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

View File

@@ -5,7 +5,6 @@ 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#
@@ -29,7 +28,6 @@ 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-2025 Bill Zissimopoulos
* @copyright 2014-2024 Bill Zissimopoulos
*/
#include <tlib/callstack.h>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
/**
* @file tlib/testsuite.h
*
* @copyright 2014-2025 Bill Zissimopoulos
* @copyright 2014-2024 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-2025 Bill Zissimopoulos
* @copyright 2015-2024 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-2025 Bill Zissimopoulos
* @copyright 2015-2024 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-2025 Bill Zissimopoulos
* @copyright 2015-2024 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-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -27,7 +27,6 @@
#include <stdint.h>
#if !defined(WINFSP_DLL_INTERNAL)
#include <stdlib.h>
#include <string.h>
#endif
#ifdef __cplusplus

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/fuse.c
*
* @copyright 2015-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -98,7 +98,6 @@ 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'),
@@ -881,7 +880,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 = !opt_data.set_FlushOnCleanup;
opt_data.VolumeParams.PostCleanupWhenModifiedOnly = TRUE;
opt_data.VolumeParams.PassQueryDirectoryFileName = TRUE;
opt_data.VolumeParams.DeviceControl = TRUE;
#if defined(FSP_CFG_REJECT_EARLY_IRP)
@@ -906,7 +905,6 @@ 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-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/fuse_intf.c
*
* @copyright 2015-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -1305,7 +1305,6 @@ 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:
@@ -1332,14 +1331,6 @@ 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)
{
@@ -1375,7 +1366,7 @@ static VOID fsp_fuse_intf_Close(FSP_FILE_SYSTEM *FileSystem,
}
else
{
if (!f->FlushOnCleanup && 0 != f->ops.flush)
if (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-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
/**
* @file dll/fuse/library.h
*
* @copyright 2015-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -63,7 +63,6 @@ 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;
@@ -157,7 +156,6 @@ 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-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
/**
* @file shared/ku/mountmgr.c
*
* @copyright 2015-2025 Bill Zissimopoulos
* @copyright 2015-2024 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-2025 Bill Zissimopoulos
* @copyright 2015-2024 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 == WindowsPath)
if (0 == PosixPath)
{
Result = STATUS_INSUFFICIENT_RESOURCES;
goto exit;

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
/**
* @file sys/cleanup.c
*
* @copyright 2015-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -242,6 +242,7 @@ 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-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -75,9 +75,6 @@ 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-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -298,8 +298,6 @@ 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;
@@ -408,10 +406,7 @@ static NTSTATUS FspFsvolCreateNoLock(
if (!RtlValidSecurityDescriptor(SecurityDescriptor))
return STATUS_INVALID_PARAMETER;
#endif
if (SecurityDescriptorRelative)
SecurityDescriptorSize = RtlLengthSecurityDescriptor(SecurityDescriptor);
else
RtlAbsoluteToSelfRelativeSD(SecurityDescriptor, 0, &SecurityDescriptorSize);
}
/* align allocation size */
@@ -707,18 +702,8 @@ static NTSTATUS FspFsvolCreateNoLock(
/* copy the security descriptor (if any) into the request */
if (0 != 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);
}
RtlCopyMemory(Request->Buffer + Request->Req.Create.SecurityDescriptor.Offset,
SecurityDescriptor, 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-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
/**
* @file sys/dirctl.c
*
* @copyright 2015-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.
@@ -348,7 +348,9 @@ static NTSTATUS FspFsvolQueryDirectoryCopyCache(
FSP_FILE_NODE *FileNode = FileDesc->FileNode;
if (ResetCache || FileDesc->DirInfo != FileNode->NonPaged->DirInfo)
if (ResetCache ||
FileDesc->DirInfo != FileNode->NonPaged->DirInfo ||
FileDesc->DirInfoCacheHint >= DirInfoSize)
FileDesc->DirInfoCacheHint = 0; /* reset the DirInfo hint if anything looks fishy! */
FileDesc->DirInfo = FileNode->NonPaged->DirInfo;

View File

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

View File

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

View File

@@ -2,7 +2,6 @@
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-2025 Bill Zissimopoulos
* @copyright 2015-2024 Bill Zissimopoulos
*/
/*
* This file is part of WinFsp.

View File

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

View File

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

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