mirror of
https://github.com/winfsp/winfsp.git
synced 2026-03-05 23:29:19 -06:00
Compare commits
1 Commits
master
...
pvt-dirfix
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9db17294da |
20
Changelog.md
20
Changelog.md
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|===
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -18,12 +18,12 @@
|
||||
<MyCompanyName>Navimatics LLC</MyCompanyName>
|
||||
<MyCopyright>2015-$([System.DateTime]::Now.ToString(`yyyy`)) Bill Zissimopoulos</MyCopyright>
|
||||
|
||||
<MyCanonicalVersion>2.2</MyCanonicalVersion>
|
||||
<MyCanonicalVersion>2.1</MyCanonicalVersion>
|
||||
|
||||
<MyProductVersion>2026 Beta1</MyProductVersion>
|
||||
<MyProductVersion>2024 Beta1</MyProductVersion>
|
||||
<MyProductStage>Beta</MyProductStage>
|
||||
|
||||
<MyCrossCert>CrossCert.cer</MyCrossCert>
|
||||
<MyCrossCert>DigiCertGlobalG3CodeSigningECCSHA3842021CA1.cer</MyCrossCert>
|
||||
<MyCertIssuer>DigiCert</MyCertIssuer>
|
||||
|
||||
<MyVersion>$(MyCanonicalVersion).$(MyBuildNumber)</MyVersion>
|
||||
@@ -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>
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file CustomActions.cpp
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -416,7 +416,7 @@ typedef struct _FSP_LAUNCH_REG_RECORD {
|
||||
<br/>
|
||||
<p align="center">
|
||||
<sub>
|
||||
Copyright © 2015-2026 Bill Zissimopoulos
|
||||
Copyright © 2015-2021 Bill Zissimopoulos
|
||||
<br/>
|
||||
Generated with <a href="https://github.com/billziss-gh/prettydoc">prettydoc</a>
|
||||
</sub>
|
||||
|
||||
@@ -404,59 +404,6 @@ NTSTATUS ( *DeleteReparsePoint)(
|
||||
STATUS\_SUCCESS or error code.
|
||||
|
||||
|
||||
</blockquote>
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
<b>DispatcherStopped</b> - Inform the file system that its dispatcher has been stopped.
|
||||
</summary>
|
||||
<blockquote>
|
||||
<br/>
|
||||
|
||||
```c
|
||||
VOID ( *DispatcherStopped)(
|
||||
FSP_FILE_SYSTEM *FileSystem,
|
||||
BOOLEAN Normally);
|
||||
```
|
||||
|
||||
**Parameters**
|
||||
|
||||
- _FileSystem_ \- The file system on which this request is posted.
|
||||
- _Normally_ \- TRUE if the file system is being stopped via FspFileSystemStopDispatcher.
|
||||
FALSE if the file system is being stopped because of another reason such
|
||||
as driver unload/uninstall.
|
||||
|
||||
**Discussion**
|
||||
|
||||
Prior to WinFsp v2.0 the FSD would never unmount a file system volume unless
|
||||
the user mode file system requested the unmount. Since WinFsp v2.0 it is possible
|
||||
for the FSD to unmount a file system volume without an explicit user mode file system
|
||||
request. For example, this happens when the FSD is being uninstalled.
|
||||
|
||||
A user mode file system can use this operation to determine when its dispatcher
|
||||
has been stopped. The Normally parameter can be used to determine why the dispatcher
|
||||
was stopped: it is TRUE when the file system is being stopped via
|
||||
FspFileSystemStopDispatcher and FALSE otherwise.
|
||||
|
||||
When the file system receives a request with Normally == TRUE it need not take any
|
||||
extra steps. This case is the same as for pre-v2.0 versions: since the file system
|
||||
stopped the dispatcher via FspFileSystemStopDispatcher, it will likely exit its
|
||||
process soon.
|
||||
|
||||
When the file system receives a request with Normally == FALSE it may need to take
|
||||
extra steps to exit its process as this is not done by default.
|
||||
|
||||
A file system that uses the FspService infrastructure may use the
|
||||
FspFileSystemStopServiceIfNecessary API to correctly handle all cases.
|
||||
|
||||
This operation is the last one that a file system will receive.
|
||||
|
||||
**See Also**
|
||||
|
||||
- FspFileSystemStopServiceIfNecessary
|
||||
|
||||
|
||||
</blockquote>
|
||||
</details>
|
||||
|
||||
@@ -1708,7 +1655,7 @@ FSP_API NTSTATUS FspFileSystemCreate(
|
||||
- _DevicePath_ \- The name of the control device for this file system. This must be either
|
||||
FSP\_FSCTL\_DISK\_DEVICE\_NAME or FSP\_FSCTL\_NET\_DEVICE\_NAME.
|
||||
- _VolumeParams_ \- Volume parameters for the newly created file system.
|
||||
- _Interface_ \- A pointer to the operations that implement this user mode file system.
|
||||
- _Interface_ \- A pointer to the actual operations that actually implement this user mode file system.
|
||||
- _PFileSystem_ \- [out]
|
||||
Pointer that will receive the file system object created on successful return from this
|
||||
call.
|
||||
@@ -2362,39 +2309,6 @@ FSP_API VOID FspFileSystemStopDispatcher(
|
||||
- _FileSystem_ \- The file system object.
|
||||
|
||||
|
||||
</blockquote>
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
<b>FspFileSystemStopServiceIfNecessary</b> - Stop a file system service, if any.
|
||||
</summary>
|
||||
<blockquote>
|
||||
<br/>
|
||||
|
||||
```c
|
||||
FSP_API VOID FspFileSystemStopServiceIfNecessary(
|
||||
FSP_FILE_SYSTEM *FileSystem,
|
||||
BOOLEAN Normally);
|
||||
```
|
||||
|
||||
**Parameters**
|
||||
|
||||
- _FileSystem_ \- The file system object.
|
||||
- _Normally_ \- TRUE if the file system is being stopped via FspFileSystemStopDispatcher.
|
||||
FALSE if the file system is being stopped because of another reason such
|
||||
as driver unload/uninstall.
|
||||
|
||||
**Discussion**
|
||||
|
||||
This is a helper for implementing the DispatcherStopped operation, but only for file systems
|
||||
that use the FspService infrastructure.
|
||||
|
||||
**See Also**
|
||||
|
||||
- DispatcherStopped
|
||||
|
||||
|
||||
</blockquote>
|
||||
</details>
|
||||
|
||||
@@ -2737,8 +2651,6 @@ This function starts and runs a service. It executes the Windows StartServiceCtr
|
||||
to connect the service process to the Service Control Manager. If the Service Control Manager is
|
||||
not available (and console mode is allowed) it will enter console mode.
|
||||
|
||||
This function should be called once per process.
|
||||
|
||||
|
||||
</blockquote>
|
||||
</details>
|
||||
@@ -2863,7 +2775,7 @@ in a clean manner by calling this function.
|
||||
<br/>
|
||||
<p align="center">
|
||||
<sub>
|
||||
Copyright © 2015-2026 Bill Zissimopoulos
|
||||
Copyright © 2015-2021 Bill Zissimopoulos
|
||||
<br/>
|
||||
Generated with <a href="https://github.com/billziss-gh/prettydoc">prettydoc</a>
|
||||
</sub>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/callstack.c
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
#include <tlib/callstack.h>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/callstack.h
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
#ifndef TLIB_CALLSTACK_H_INCLUDED
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/injected/allfunc.h
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
#ifndef TLIB_INJECTED_ALLFUNC_H_INCLUDED
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/injected/curlfunc.c
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
#include <tlib/injected/curlfunc.h>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/injected/curlfunc.h
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
#ifndef TLIB_INJECTED_CURLFUNC_H_INCLUDED
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/injected/stdfunc.c
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
#include <tlib/injected/stdfunc.h>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/injected/stdfunc.h
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
#ifndef TLIB_INJECTED_STDFUNC_H_INCLUDED
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/injection.c
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
#include <tlib/injection.h>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/injection.h
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
/* NOTE: This header may usefully be included multiple times.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/testsuite.c
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
#include <tlib/testsuite.h>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file tlib/testsuite.h
|
||||
*
|
||||
* @copyright 2014-2026 Bill Zissimopoulos
|
||||
* @copyright 2014-2024 Bill Zissimopoulos
|
||||
*/
|
||||
|
||||
#ifndef TLIB_TESTSUITE_H_INCLUDED
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* FUSE: Filesystem in Userspace
|
||||
* Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* FUSE: Filesystem in Userspace
|
||||
* Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* FUSE: Filesystem in Userspace
|
||||
* Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @file fuse/winfsp_fuse.h
|
||||
* WinFsp FUSE compatible API.
|
||||
*
|
||||
* @copyright 2015-2026 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
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* FUSE: Filesystem in Userspace
|
||||
* Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* FUSE: Filesystem in Userspace
|
||||
* Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @file fuse3/fuse_opt.h
|
||||
* WinFsp FUSE3 compatible API.
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @file fuse3/winfsp_fuse.h
|
||||
* WinFsp FUSE3 compatible API.
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file winfsp/fsctl.h
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* In order to use the WinFsp Launch API a program must include <winfsp/launch.h>
|
||||
* and link with the winfsp_x64.dll (or winfsp_x86.dll) library.
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* In order to use the WinFsp API the user mode file system must include <winfsp/winfsp.h>
|
||||
* and link with the winfsp_x64.dll (or winfsp_x86.dll) library.
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @file winfsp/winfsp.hpp
|
||||
* WinFsp C++ Layer.
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file fuse/cygfuse.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2022 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file fuse3/cygfuse.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2022 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file winfsp/fsext.h
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2022 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/debug.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/debuglog.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/dirbuf.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/eventlog.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fs.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fsctl.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fsop.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse/fuse.c
|
||||
*
|
||||
* @copyright 2015-2026 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'),
|
||||
@@ -121,8 +120,6 @@ static struct fuse_opt fsp_fuse_core_opts[] =
|
||||
FSP_FUSE_CORE_OPT("--GroupName=", set_gid, 1),
|
||||
FUSE_OPT_KEY("--GroupName=", 'g'),
|
||||
|
||||
FSP_FUSE_CORE_OPT("AddWriteEaAccess", add_write_ea_access, 1),
|
||||
|
||||
FUSE_OPT_END,
|
||||
};
|
||||
|
||||
@@ -883,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)
|
||||
@@ -905,11 +902,9 @@ FSP_FUSE_API struct fuse *fsp_fuse_new(struct fsp_fuse_env *env,
|
||||
f->set_create_dir_umask = opt_data.set_create_dir_umask; f->create_dir_umask = opt_data.create_dir_umask;
|
||||
f->set_uid = opt_data.set_uid; f->uid = opt_data.uid;
|
||||
f->set_gid = opt_data.set_gid; f->gid = opt_data.gid;
|
||||
f->add_write_ea_access = opt_data.add_write_ea_access;
|
||||
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;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse/fuse_compat.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse/fuse_intf.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
@@ -545,39 +545,6 @@ static NTSTATUS fsp_fuse_intf_GetFileInfoFunnel(FSP_FILE_SYSTEM *FileSystem,
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static VOID fsp_fuse_intf_AddWriteEaAccess(
|
||||
PSECURITY_DESCRIPTOR SecurityDescriptor)
|
||||
{
|
||||
BOOL DaclPresent, DaclDefaulted;
|
||||
PACL Acl;
|
||||
ACL_SIZE_INFORMATION AclSizeInfo;
|
||||
PACE_HEADER Ace;
|
||||
PACCESS_MASK AccessMask;
|
||||
|
||||
if (!GetSecurityDescriptorDacl(SecurityDescriptor, &DaclPresent, &Acl, &DaclDefaulted))
|
||||
return;
|
||||
if (0 == Acl)
|
||||
return;
|
||||
if (!GetAclInformation(Acl, &AclSizeInfo, sizeof AclSizeInfo, AclSizeInformation))
|
||||
return;
|
||||
|
||||
for (DWORD I = 0; I < AclSizeInfo.AceCount; I++)
|
||||
{
|
||||
if (!GetAce(Acl, I, &Ace))
|
||||
return;
|
||||
|
||||
if (Ace->AceType == ACCESS_ALLOWED_ACE_TYPE)
|
||||
AccessMask = &((PACCESS_ALLOWED_ACE)Ace)->Mask;
|
||||
else if (Ace->AceType == ACCESS_DENIED_ACE_TYPE)
|
||||
AccessMask = &((PACCESS_DENIED_ACE)Ace)->Mask;
|
||||
else
|
||||
continue;
|
||||
|
||||
if (*AccessMask & FILE_WRITE_DATA)
|
||||
*AccessMask |= FILE_WRITE_EA;
|
||||
}
|
||||
}
|
||||
|
||||
static NTSTATUS fsp_fuse_intf_GetSecurityEx(FSP_FILE_SYSTEM *FileSystem,
|
||||
const char *PosixPath, struct fuse_file_info *fi,
|
||||
PUINT32 PFileAttributes,
|
||||
@@ -612,11 +579,7 @@ static NTSTATUS fsp_fuse_intf_GetSecurityEx(FSP_FILE_SYSTEM *FileSystem,
|
||||
|
||||
*PSecurityDescriptorSize = SecurityDescriptorSize;
|
||||
if (0 != SecurityDescriptorBuf)
|
||||
{
|
||||
memcpy(SecurityDescriptorBuf, SecurityDescriptor, SecurityDescriptorSize);
|
||||
if (f->add_write_ea_access)
|
||||
fsp_fuse_intf_AddWriteEaAccess(SecurityDescriptorBuf);
|
||||
}
|
||||
}
|
||||
|
||||
if (0 != PFileAttributes)
|
||||
@@ -1083,12 +1046,13 @@ static NTSTATUS fsp_fuse_intf_Create(FSP_FILE_SYSTEM *FileSystem,
|
||||
goto exit;
|
||||
|
||||
/*
|
||||
* Ignore fuse_file_info::keep_cache.
|
||||
* Ignore fuse_file_info::direct_io, fuse_file_info::keep_cache.
|
||||
* NOTE: Originally WinFsp did not support disabling the cache manager
|
||||
* for an individual file. This is now possible and we should revisit.
|
||||
*
|
||||
* Ignore fuse_file_info::nonseekable.
|
||||
*/
|
||||
|
||||
FspFileSystemGetOperationContext()->Response->Rsp.Create.Opened.DisableCache = fi.direct_io;
|
||||
|
||||
*PFileDesc = filedesc;
|
||||
memcpy(FileInfo, &FileInfoBuf, sizeof FileInfoBuf);
|
||||
|
||||
@@ -1227,12 +1191,13 @@ static NTSTATUS fsp_fuse_intf_Open(FSP_FILE_SYSTEM *FileSystem,
|
||||
goto exit;
|
||||
|
||||
/*
|
||||
* Ignore fuse_file_info::keep_cache.
|
||||
* Ignore fuse_file_info::direct_io, fuse_file_info::keep_cache.
|
||||
* NOTE: Originally WinFsp did not support disabling the cache manager
|
||||
* for an individual file. This is now possible and we should revisit.
|
||||
*
|
||||
* Ignore fuse_file_info::nonseekable.
|
||||
*/
|
||||
|
||||
FspFileSystemGetOperationContext()->Response->Rsp.Create.Opened.DisableCache = fi.direct_io;
|
||||
|
||||
*PFileDesc = filedesc;
|
||||
memcpy(FileInfo, &FileInfoBuf, sizeof FileInfoBuf);
|
||||
|
||||
@@ -1340,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:
|
||||
@@ -1367,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)
|
||||
{
|
||||
@@ -1410,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);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse/fuse_loop.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse/fuse_main.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse/fuse_opt.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse/library.h
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
@@ -55,7 +55,6 @@ struct fuse
|
||||
int set_create_dir_umask, create_dir_umask;
|
||||
int set_uid, uid;
|
||||
int set_gid, gid;
|
||||
int add_write_ea_access;
|
||||
int rellinks;
|
||||
int dothidden;
|
||||
unsigned ThreadCount;
|
||||
@@ -64,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;
|
||||
@@ -149,7 +147,6 @@ struct fsp_fuse_core_opt_data
|
||||
set_create_dir_umask, create_dir_umask,
|
||||
set_uid, uid, username_to_uid_result,
|
||||
set_gid, gid,
|
||||
add_write_ea_access,
|
||||
set_uidmap,
|
||||
set_attr_timeout, attr_timeout,
|
||||
rellinks,
|
||||
@@ -159,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;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse3/fuse2to3.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse3/fuse3.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse/fuse3_compat.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/fuse3/library.h
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/launch.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/ldap.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/library.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/library.h
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/mount.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
55
src/dll/np.c
55
src/dll/np.c
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/np.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
@@ -454,41 +454,6 @@ exit:
|
||||
return NpResult;
|
||||
}
|
||||
|
||||
static BOOLEAN FspNpCheckRemoteVolume(PWSTR RemoteName)
|
||||
{
|
||||
PWSTR ClassName, InstanceName, P;
|
||||
ULONG ClassNameLen, InstanceNameLen;
|
||||
WCHAR RemoteNameBuf[9 + sizeof(((FSP_FSCTL_VOLUME_PARAMS *)0)->Prefix) / sizeof(WCHAR)];
|
||||
HANDLE Handle;
|
||||
DWORD Bytes;
|
||||
BOOLEAN Result;
|
||||
|
||||
if (!FspNpParseRemoteName(RemoteName,
|
||||
&ClassName, &ClassNameLen, &InstanceName, &InstanceNameLen))
|
||||
return FALSE;
|
||||
|
||||
Result = FALSE;
|
||||
|
||||
P = RemoteNameBuf;
|
||||
*P++ = L'\\'; *P++ = L'\\'; *P++ = L'?'; *P++ = L'\\';
|
||||
*P++ = L'U'; *P++ = L'N'; *P++ = L'C'; *P++ = L'\\';
|
||||
memcpy(P, ClassName, ClassNameLen * sizeof(WCHAR)); P += ClassNameLen; *P++ = L'\\';
|
||||
memcpy(P, InstanceName, InstanceNameLen * sizeof(WCHAR)); P += InstanceNameLen; *P++ = L'\\';
|
||||
*P++ = L'\0';
|
||||
|
||||
Handle = CreateFileW(RemoteNameBuf,
|
||||
FILE_READ_ATTRIBUTES, 0, 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
|
||||
if (INVALID_HANDLE_VALUE != Handle)
|
||||
{
|
||||
/* the file system is up and running; is it WinFsp? */
|
||||
if (DeviceIoControl(Handle, FSP_FSCTL_QUERY_WINFSP, 0, 0, 0, 0, &Bytes, 0))
|
||||
Result = TRUE;
|
||||
CloseHandle(Handle);
|
||||
}
|
||||
|
||||
return Result;
|
||||
}
|
||||
|
||||
DWORD APIENTRY NPGetConnection(
|
||||
LPWSTR lpLocalName, LPWSTR lpRemoteName, LPDWORD lpnBufferLen)
|
||||
{
|
||||
@@ -608,16 +573,7 @@ DWORD APIENTRY NPAddConnection(LPNETRESOURCEW lpNetResource, LPWSTR lpPassword,
|
||||
|
||||
NpResult = FspNpGetRemoteInfo(lpRemoteName, 0, &CredentialsKind, &AllowImpersonation);
|
||||
if (WN_SUCCESS != NpResult)
|
||||
{
|
||||
/*
|
||||
* This may still be a WinFsp network file system, but not managed by the Launcher.
|
||||
* So if it is already live, one of ours and we do not need to map a drive, then go
|
||||
* ahead and report success.
|
||||
*/
|
||||
if (L'\0' == LocalNameBuf[0] && FspNpCheckRemoteVolume(lpRemoteName))
|
||||
NpResult = WN_SUCCESS;
|
||||
return NpResult;
|
||||
}
|
||||
|
||||
#if defined(FSP_NP_CREDENTIAL_MANAGER)
|
||||
/* if we need credentials and none were passed check with the credential manager */
|
||||
@@ -764,15 +720,6 @@ DWORD APIENTRY NPAddConnection(LPNETRESOURCEW lpNetResource, LPWSTR lpPassword,
|
||||
/* we are not being asked for a drive mapping, so whatever we have is good! */
|
||||
NpResult = WN_SUCCESS;
|
||||
break;
|
||||
case WN_NO_NETWORK:
|
||||
/*
|
||||
* This may still be a WinFsp network file system, but not managed by the Launcher.
|
||||
* So if it is already live, one of ours and we do not need to map a drive, then go
|
||||
* ahead and report success.
|
||||
*/
|
||||
if (L'\0' == LocalNameBuf[0] && FspNpCheckRemoteVolume(lpRemoteName))
|
||||
NpResult = WN_SUCCESS;
|
||||
break;
|
||||
default:
|
||||
NpResult = WN_NO_NETWORK;
|
||||
break;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/ntstatus.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/path.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/security.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/service.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/sxs.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/util.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file dll/wksid.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* dotnet/FileSystemBase+Const.cs
|
||||
*
|
||||
* Copyright 2015-2026 Bill Zissimopoulos
|
||||
* Copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* dotnet/FileSystemBase.cs
|
||||
*
|
||||
* Copyright 2015-2026 Bill Zissimopoulos
|
||||
* Copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* dotnet/FileSystemHost.cs
|
||||
*
|
||||
* Copyright 2015-2026 Bill Zissimopoulos
|
||||
* Copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* dotnet/Interop.cs
|
||||
*
|
||||
* Copyright 2015-2026 Bill Zissimopoulos
|
||||
* Copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* dotnet/Service.cs
|
||||
*
|
||||
* Copyright 2015-2026 Bill Zissimopoulos
|
||||
* Copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file fsptool/fsptool.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file launcher/launchctl.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file launcher/launcher.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file launcher/ptrans.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Shared kernel/user configuration. This file is to be included by the
|
||||
* FSD and DLL components ONLY!
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file shared/ku/library.h
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file shared/ku/mountmgr.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* [SNAME]
|
||||
* https://www.cygwin.com/cygwin-ug-net/using-specialnames.html
|
||||
*
|
||||
* @copyright 2015-2026 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;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file shared/ku/uuid5.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file shared/um/minimal.h
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @file sys/callbacks.c
|
||||
* Fast I/O and resource acquisition callbacks.
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file sys/cleanup.c
|
||||
*
|
||||
* @copyright 2015-2026 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);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file sys/close.c
|
||||
*
|
||||
* @copyright 2015-2026 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;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file sys/create.c
|
||||
*
|
||||
* @copyright 2015-2026 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)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file sys/debug.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file sys/devctl.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
@@ -72,32 +72,15 @@ BOOLEAN FspFastIoDeviceControl(
|
||||
if (!Result)
|
||||
FSP_RETURN();
|
||||
|
||||
if (0 != InputBufferLength &&
|
||||
FSP_FSCTL_DEFAULT_ALIGN_UP(sizeof(FSP_FSCTL_TRANSACT_RSP)) > InputBufferLength)
|
||||
FSP_RETURN(IoStatus->Status = STATUS_INVALID_PARAMETER);
|
||||
if (0 != OutputBufferLength &&
|
||||
FSP_FSCTL_TRANSACT_BUFFER_SIZEMIN > OutputBufferLength)
|
||||
FSP_RETURN(IoStatus->Status = STATUS_BUFFER_TOO_SMALL);
|
||||
|
||||
PVOID SystemBuffer = 0;
|
||||
|
||||
if (0 != InputBufferLength || 0 != OutputBufferLength)
|
||||
#if 0
|
||||
PDEVICE_OBJECT FsctlDeviceObject = DeviceObject;
|
||||
if (!FspDeviceReference(FsctlDeviceObject))
|
||||
{
|
||||
SystemBuffer = FspAllocNonPaged(
|
||||
InputBufferLength > OutputBufferLength ? InputBufferLength : OutputBufferLength);
|
||||
if (0 == SystemBuffer)
|
||||
FSP_RETURN(Result = FALSE);
|
||||
if (0 != InputBuffer)
|
||||
try
|
||||
{
|
||||
RtlCopyMemory(SystemBuffer, InputBuffer, InputBufferLength);
|
||||
}
|
||||
except (EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
FspFree(SystemBuffer);
|
||||
FSP_RETURN(Result = FALSE);
|
||||
}
|
||||
IoStatus->Status = STATUS_CANCELLED;
|
||||
IoStatus->Information = 0;
|
||||
FSP_RETURN();
|
||||
}
|
||||
#endif
|
||||
|
||||
ASSERT(0 == IoGetTopLevelIrp());
|
||||
IoSetTopLevelIrp((PIRP)FSRTL_FAST_IO_TOP_LEVEL_IRP);
|
||||
@@ -105,29 +88,18 @@ BOOLEAN FspFastIoDeviceControl(
|
||||
IoStatus->Status = FspVolumeFastTransact(
|
||||
FileObject->FsContext2,
|
||||
IoControlCode,
|
||||
SystemBuffer,
|
||||
InputBuffer,
|
||||
InputBufferLength,
|
||||
0 != OutputBufferLength ? SystemBuffer : 0,
|
||||
OutputBuffer,
|
||||
OutputBufferLength,
|
||||
IoStatus,
|
||||
(PIRP)FSRTL_FAST_IO_TOP_LEVEL_IRP);
|
||||
|
||||
IoSetTopLevelIrp(0);
|
||||
|
||||
if (0 != SystemBuffer)
|
||||
{
|
||||
if (NT_SUCCESS(IoStatus->Status) && 0 != OutputBuffer)
|
||||
try
|
||||
{
|
||||
RtlCopyMemory(OutputBuffer, SystemBuffer, IoStatus->Information);
|
||||
}
|
||||
except (EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
IoStatus->Status = GetExceptionCode();
|
||||
IoStatus->Information = 0;
|
||||
}
|
||||
FspFree(SystemBuffer);
|
||||
}
|
||||
#if 0
|
||||
FspDeviceDereference(FsctlDeviceObject);
|
||||
#endif
|
||||
|
||||
FSP_LEAVE_BOOL(
|
||||
"%s, FileObject=%p",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file sys/device.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file sys/devtimer.c
|
||||
*
|
||||
* @copyright 2015-2026 Bill Zissimopoulos
|
||||
* @copyright 2015-2024 Bill Zissimopoulos
|
||||
*/
|
||||
/*
|
||||
* This file is part of WinFsp.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file sys/dirctl.c
|
||||
*
|
||||
* @copyright 2015-2026 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;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file sys/driver.c
|
||||
*
|
||||
* @copyright 2015-2026 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
Reference in New Issue
Block a user