diff --git a/Contributors.asciidoc b/Contributors.asciidoc index ac89dd98..99c61678 100644 --- a/Contributors.asciidoc +++ b/Contributors.asciidoc @@ -60,4 +60,5 @@ CONTRIBUTOR LIST |John Oberschelp |john at oberschelp.net |Sam Kelly (DuroSoft Technologies LLC, https://durosoft.com) |sam at durosoft.com |Tobias Urlaub |saibotu at outlook.de +|Francois Karam (KS2, http://www.ks2.fr) |francois.karam at ks2.fr |=== diff --git a/src/dotnet/FileSystemHost.cs b/src/dotnet/FileSystemHost.cs index 55a14c2c..4bb9fc26 100644 --- a/src/dotnet/FileSystemHost.cs +++ b/src/dotnet/FileSystemHost.cs @@ -194,6 +194,11 @@ namespace Fsp get { return 0 != (_VolumeParams.Flags & VolumeParams.PassQueryDirectoryFileName); } set { _VolumeParams.Flags |= (value ? VolumeParams.PassQueryDirectoryFileName : 0); } } + public Boolean FlushAndPurgeOnCleanup + { + get { return 0 != (_VolumeParams.Flags & VolumeParams.FlushAndPurgeOnCleanup); } + set { _VolumeParams.Flags |= (value ? VolumeParams.FlushAndPurgeOnCleanup : 0); } + } /// /// Gets or sets the prefix for a network file system. /// @@ -347,6 +352,14 @@ namespace Fsp { return Api.SetDebugLogFile(FileName); } + /// + /// Return the installed version of WinFsp. + /// + /// + public static Version Version() + { + return Api.GetFspVersion(); + } /* FSP_FILE_SYSTEM_INTERFACE */ private static Byte[] ByteBufferNotNull = new Byte[0]; diff --git a/src/dotnet/Interop.cs b/src/dotnet/Interop.cs index c81e9b67..41b65aea 100644 --- a/src/dotnet/Interop.cs +++ b/src/dotnet/Interop.cs @@ -43,6 +43,7 @@ namespace Fsp.Interop internal const UInt32 PassQueryDirectoryPattern = 0x00000800; internal const UInt32 AlwaysUseDoubleBuffering = 0x00001000; internal const UInt32 PassQueryDirectoryFileName = 0x00002000; + internal const UInt32 FlushAndPurgeOnCleanup = 0x00004000; internal const UInt32 UmFileContextIsUserContext2 = 0x00010000; internal const UInt32 UmFileContextIsFullContext = 0x00020000; internal const int PrefixSize = 192; @@ -979,6 +980,13 @@ namespace Fsp.Interop return 0/*STATUS_SUCCESS*/; } + internal static Version GetFspVersion() + { + UInt32 Version = 0; + FspVersion(out Version); + return new System.Version((Int32)Version >> 16, (Int32)Version & 0xFFFF); + } + /* initialization */ private static IntPtr LoadDll() {