Files
romrepomgr/RomRepoMgr.Core/Filesystem/Winfsp.cs

53 lines
1.2 KiB
C#
Raw Normal View History

2020-08-30 14:22:41 +01:00
using System;
using Fsp;
using Fsp.Interop;
2020-08-30 14:22:41 +01:00
namespace RomRepoMgr.Core.Filesystem
{
public class Winfsp : FileSystemBase
{
FileSystemHost _host;
2020-08-30 14:22:41 +01:00
public static bool IsAvailable
{
get
{
try
{
Version winfspVersion = FileSystemHost.Version();
if(winfspVersion == null)
return false;
return winfspVersion.Major == 1 && winfspVersion.Minor >= 7;
}
catch(Exception)
{
return false;
}
}
}
internal bool Mount(string mountPoint)
{
_host = new FileSystemHost(this);
int ret = _host.Mount(mountPoint);
if(ret == STATUS_SUCCESS)
return true;
_host = null;
return false;
}
internal void Umount() => _host?.Unmount();
public override int SetVolumeLabel(string VolumeLabel, out VolumeInfo VolumeInfo)
{
VolumeInfo = default;
return STATUS_MEDIA_WRITE_PROTECTED;
}
2020-08-30 14:22:41 +01:00
}
}