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()
{