Merge pull request #176 from FrKaram/Issue174

dotnet: add FlushAndPurgeOnCleanup and FspVersion
This commit is contained in:
Bill Zissimopoulos 2018-07-05 21:55:34 +01:00 committed by GitHub
commit 6ffddf36b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 0 deletions

View File

@ -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
|===

View File

@ -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); }
}
/// <summary>
/// Gets or sets the prefix for a network file system.
/// </summary>
@ -347,6 +352,14 @@ namespace Fsp
{
return Api.SetDebugLogFile(FileName);
}
/// <summary>
/// Return the installed version of WinFsp.
/// </summary>
/// <returns></returns>
public static Version Version()
{
return Api.GetFspVersion();
}
/* FSP_FILE_SYSTEM_INTERFACE */
private static Byte[] ByteBufferNotNull = new Byte[0];

View File

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