Windows File System Proxy - FUSE for Windows
OTHER License
Bot releases are hidden (Show)
Published by billziss-gh over 3 years ago
[NEW] WinFsp now supports file change notifications and cache invalidations. This functionality is offered via the following new API's:
FspFileSystemNotify
fuse_notify
FileSystemHost.Notify
. (Some fixes to the .NET API functionality were contributed by @alonsohki. Thank you.)[NEW] A native file system (notifyfs) and a .NET file system (notifyfs-dotnet) have been added to showcase the new file change notification API.
[NEW] A new WinFsp-FUSE option FileSecurity
has been added that allows the complete specification of file security descriptors using SDDL. (See GitHub issue https://github.com/rclone/rclone/issues/4717#issuecomment-767723287.)
[FIX] The FSD now correctly handles a rare situation where receiving too many CLOSE calls from the OS (e.g. when caching thousands of files) could result in a bogus "insufficient resources" error. (See commit 0af0bfbe7c45e353d693a2a45965d99fa81f2163.)
[FIX] WinFsp-FUSE correctly maps SID's from trusted domains to POSIX UID's in a multi-domain environment (using the "trustPosixOffset" attribute). Previously WinFsp-FUSE only handled SID's from the primary domain correctly.
[FIX] WinFsp-FUSE options such as volname
, VolumePrefix
, FileSystemName
, ExactFileSystemName
are now truncated when too long. (See GitHub issue #311.)
[FIX] The WinFsp driver is now started in a thread-safe manner if it is not already running. (See GitHub issue billziss-gh/cgofuse#51.)
[FIX] Credentials entered in the Credentials dialog (when mapping network drives) are no longer saved by default. (See GitHub PR #342. Thanks @gaotxg.)
Published by billziss-gh over 3 years ago
[NEW] WinFsp now supports file change notifications and cache invalidations. This functionality is offered via the following new API's:
FspFileSystemNotify
fuse_notify
FileSystemHost.Notify
. (Some fixes to the .NET API functionality were contributed by @alonsohki. Thank you.)[NEW] A native file system (notifyfs) and a .NET file system (notifyfs-dotnet) have been added to showcase the new file change notification API.
[NEW] A new WinFsp-FUSE option FileSecurity
has been added that allows the complete specification of file security descriptors using SDDL. (See GitHub issue https://github.com/rclone/rclone/issues/4717#issuecomment-767723287.)
[FIX] The FSD now correctly handles a rare situation where receiving too many CLOSE calls from the OS (e.g. when caching thousands of files) could result in a bogus "insufficient resources" error. (See commit 0af0bfbe7c45e353d693a2a45965d99fa81f2163.)
[FIX] WinFsp-FUSE correctly maps SID's from trusted domains to POSIX UID's in a multi-domain environment (using the "trustPosixOffset" attribute). Previously WinFsp-FUSE only handled SID's from the primary domain correctly.
[FIX] WinFsp-FUSE options such as volname
, VolumePrefix
, FileSystemName
, ExactFileSystemName
are now truncated when too long. (See GitHub issue #311.)
[FIX] The WinFsp driver is now started in a thread-safe manner if it is not already running. (See GitHub issue billziss-gh/cgofuse#51.)
[FIX] Credentials entered in the Credentials dialog (when mapping network drives) are no longer saved by default. (See GitHub PR #342. Thanks @gaotxg.)
Published by billziss-gh almost 4 years ago
[NEW] WinFsp now supports file change notifications and cache invalidations. This functionality is offered via the following new API's:
FspFileSystemNotify
fuse_notify
FileSystemHost.Notify
[FIX] WinFsp-FUSE correctly maps SID's from trusted domains to POSIX UID's in a multi-domain environment (using the "trustPosixOffset" attribute). Previously WinFsp-FUSE only handled SID's from the primary domain correctly.
Published by billziss-gh almost 4 years ago
[FSD] WinFsp now supports Windows containers. See the WinFsp Container Support document for details.
[FSD] The FSP_FSCTL_QUERY_WINFSP
code provides a simple method to determine if the file system backing a file is a WinFsp file system. To use issue a:
DeviceIoControl(Handle, FSP_FSCTL_QUERY_WINFSP, 0, 0, 0, 0, &Bytes, 0)
// If the return value is TRUE this is a WinFsp file system.
[FSD] A fix regarding concurrency of READs on the same file: WinFsp was supposed to allow concurrent READ requests on the same file (e.g. two concurrent overlapped ReadFile
requests on the same HANDLE
) to be handled concurrently by the file system; unfortunately due to a problem in recent versions of WinFsp READ requests on the same file were serialized. This problem has now been fixed. See GitHub issue #291 for more details.
[FSD] When renaming files or directories NTFS allows the target name to contain a backslash at the end (even for files!) whereas WinFsp did not. This problem has been fixed and a test has been added in winfsp-tests
.
Published by billziss-gh about 4 years ago
[FSD] WinFsp now supports Windows containers. See the WinFsp Container Support document for details.
[FSD] The FSP_FSCTL_QUERY_WINFSP
code provides a simple method to determine if the file system backing a file is a WinFsp file system. To use issue a:
DeviceIoControl(Handle, FSP_FSCTL_QUERY_WINFSP, 0, 0, 0, 0, &Bytes, 0)
// If the return value is TRUE this is a WinFsp file system.
[FSD] A fix regarding concurrency of READs on the same file: WinFsp was supposed to allow concurrent READ requests on the same file (e.g. two concurrent overlapped ReadFile
requests on the same HANDLE
) to be handled concurrently by the file system; unfortunately due to a problem in recent versions of WinFsp READ requests on the same file were serialized. This problem has now been fixed. See GitHub issue #291 for more details.
[FSD] When renaming files or directories NTFS allows the target name to contain a backslash at the end (even for files!) whereas WinFsp did not. This problem has been fixed and a test has been added in winfsp-tests
.
Published by billziss-gh about 4 years ago
[FSD] WinFsp now supports Windows containers. See the WinFsp Container Support document for details.
[FSD] The FSP_FSCTL_QUERY_WINFSP
code provides a simple method to determine if the file system backing a file is a WinFsp file system. To use issue a:
DeviceIoControl(Handle, FSP_FSCTL_QUERY_WINFSP, 0, 0, 0, 0, &Bytes, 0)
// If the return value is TRUE this is a WinFsp file system.
[FSD] A fix regarding concurrency of READs on the same file: WinFsp was supposed to allow concurrent READ requests on the same file (e.g. two concurrent overlapped ReadFile
requests on the same HANDLE
) to be handled concurrently by the file system; unfortunately due to a problem in recent versions of WinFsp READ requests on the same file were serialized. This problem has now been fixed. See GitHub issue #291 for more details.
Published by billziss-gh over 4 years ago
FSP_FSCTL_QUERY_WINFSP
code provides a simple method to determine if the file system backing a file is a WinFsp file system. To use issue a:
DeviceIoControl(Handle, FSP_FSCTL_QUERY_WINFSP, 0, 0, 0, 0, &Bytes, 0)
// If the return value is TRUE this is a WinFsp file system.
Published by billziss-gh over 4 years ago
Recovery=1
in the file system's registry entry.Stderr=PATH
in the file system's registry entry.RejectIrpPriorToTransact0
in FSP_FSCTL_VOLUME_PARAMS
to 1
. This is only required when mounting on a directory with Avast Antivirus present.Published by billziss-gh over 4 years ago
Recovery=1
in the file system's registry entry.Stderr=PATH
in the file system's registry entry.RejectIrpPriorToTransact0
in FSP_FSCTL_VOLUME_PARAMS
to 1
. This is only required when mounting on a directory with Avast Antivirus present.Published by billziss-gh over 4 years ago
RejectIrpPriorToTransact0
in FSP_FSCTL_VOLUME_PARAMS
to 1
. This is only required when mounting on a directory with Avast Antivirus present.Published by billziss-gh over 4 years ago
O_APPEND
flag to FUSE file systems, which would result in data corruption under some circumstances. (See PR #272. Thanks @pfrejo.)FILE_DIRECTORY_FILE
). (See PR #270. Thanks @hammerg.)Published by billziss-gh almost 5 years ago
FSP_FSCTL_VOLUME_PARAMS::WslFeatures
bit. Use the command sudo mount -t drvfs x: /mnt/x
to mount.\\.\X:
then the Mount Manager is used.X:
then DefineDosDeviceW
is used (i.e. same as today).X:\DIR
then a reparse point is used and the file system is mounted as a directory (i.e. same as today).\\.\MountPointManager
device requires Administrator access.\\.\X:
) but not directories (\\.\X:\DIR
).\GLOBAL??
portion of the NT namespace).FspFsextProvider
. This is in preparation for WinFuse - FUSE for Windows and WSLinux.FastIoQueryOpen
, which allows opening files in kernel mode; this operation requires the file system to specify the FSP_FSCTL_VOLUME_PARAMS::AllowOpenInKernelMode
flag.FileFsSectorSizeInformation
and IOCTL_STORAGE_QUERY_PROPERTY / StorageAccessAlignmentProperty
has been added.FspFileSystemStartDispatcher
default number of threads (ThreadCount==0
) has been changed. See commit 3902874ac93fe40685d9761f46a96358ba24f24c for more.-o UserName=DOMAIN+USERNAME
and -o GroupName=DOMAIN+GROUPNAME
options. These function like the -o uid=UID
and -o gid=GID
options, but accept Windows user and groups names.-o dothidden
option that is used to add the Windows hidden file attribute to files that start with a dot.-o create_file_umask=nnn
and -o create_dir_umask=nnn
options that allow for more control than the -o create_umask=nnn
option.--ExactFileSystemName=FSNAME
option that removes the "FUSE-" prefix from the file system name. (Use with caution: see discussion in PR #251.) (Thanks @johntyner.)Read
, Write
and ReadDirectory
. (Thanks @dworkin.)VolumeInfoTimeout
, DirInfoTimeout
, etc).FileSystemHost.MountEx
that adds a ThreadCount
parameter.tst/memfs-fuse3
.opendir
. (GitHub issue billziss-gh/sshfs-win#54)Published by billziss-gh almost 5 years ago
FSP_FSCTL_VOLUME_PARAMS::WslFeatures
bit. Use the command sudo mount -t drvfs x: /mnt/x
to mount.\\.\X:
then the Mount Manager is used.X:
then DefineDosDeviceW
is used (i.e. same as today).X:\DIR
then a reparse point is used and the file system is mounted as a directory (i.e. same as today).\\.\MountPointManager
device requires Administrator access.\\.\X:
) but not directories (\\.\X:\DIR
).\GLOBAL??
portion of the NT namespace).FspFsextProvider
. This is in preparation for WinFuse - FUSE for Windows and WSLinux.FastIoQueryOpen
, which allows opening files in kernel mode; this operation requires the file system to specify the FSP_FSCTL_VOLUME_PARAMS::AllowOpenInKernelMode
flag.FileFsSectorSizeInformation
and IOCTL_STORAGE_QUERY_PROPERTY / StorageAccessAlignmentProperty
has been added.FspFileSystemStartDispatcher
default number of threads (ThreadCount==0
) has been changed. See commit 3902874ac93fe40685d9761f46a96358ba24f24c for more.-o UserName=DOMAIN+USERNAME
and -o GroupName=DOMAIN+GROUPNAME
options. These function like the -o uid=UID
and -o gid=GID
options, but accept Windows user and groups names.-o dothidden
option that is used to add the Windows hidden file attribute to files that start with a dot.-o create_file_umask=nnn
and -o create_dir_umask=nnn
options that allow for more control than the -o create_umask=nnn
option.--ExactFileSystemName=FSNAME
option that removes the "FUSE-" prefix from the file system name. (Use with caution: see discussion in PR #251.) (Thanks @johntyner.)Read
, Write
and ReadDirectory
. (Thanks @dworkin.)VolumeInfoTimeout
, DirInfoTimeout
, etc).FileSystemHost.MountEx
that adds a ThreadCount
parameter.tst/memfs-fuse3
.opendir
. (GitHub issue billziss-gh/sshfs-win#54)Published by billziss-gh almost 5 years ago
FSP_FSCTL_VOLUME_PARAMS::WslFeatures
bit. Use the command sudo mount -t drvfs x: /mnt/x
to mount.\\.\X:
then the Mount Manager is used.X:
then DefineDosDeviceW
is used (i.e. same as today).X:\DIR
then a reparse point is used and the file system is mounted as a directory (i.e. same as today).\\.\MountPointManager
device requires Administrator access.\\.\X:
) but not directories (\\.\X:\DIR
).\GLOBAL??
portion of the NT namespace).FspFsextProvider
. This is in preparation for WinFuse - FUSE for Windows and WSLinux.FastIoQueryOpen
, which allows opening files in kernel mode; this operation requires the file system to specify the FSP_FSCTL_VOLUME_PARAMS::AllowOpenInKernelMode
flag.FileFsSectorSizeInformation
and IOCTL_STORAGE_QUERY_PROPERTY / StorageAccessAlignmentProperty
has been added.FspFileSystemStartDispatcher
default number of threads (ThreadCount==0
) has been changed. See commit 3902874ac93fe40685d9761f46a96358ba24f24c for more.-o UserName=DOMAIN+USERNAME
and -o GroupName=DOMAIN+GROUPNAME
options. These function like the -o uid=UID
and -o gid=GID
options, but accept Windows user and groups names.-o dothidden
option that is used to add the Windows hidden file attribute to files that start with a dot.-o create_file_umask=nnn
and -o create_dir_umask=nnn
options that allow for more control than the -o create_umask=nnn
option.--ExactFileSystemName=FSNAME
option that removes the "FUSE-" prefix from the file system name. (Use with caution: see discussion in PR #251.) (Thanks @johntyner.)Read
, Write
and ReadDirectory
. (Thanks @dworkin.)VolumeInfoTimeout
, DirInfoTimeout
, etc).FileSystemHost.MountEx
that adds a ThreadCount
parameter.tst/memfs-fuse3
.opendir
. (GitHub issue billziss-gh/sshfs-win#54)Published by billziss-gh almost 5 years ago
Changes since v1.4:
sudo mount -t drvfs x: /mnt/x
to mount.\\.\X:
then the Mount Manager is used.X:
then DefineDosDeviceW
is used (i.e. same as previous versions).X:\DIR
then a reparse point is used and the file system is mounted as a directory (i.e. same as previous versions).\\.\MountPointManager
device requires Administrator access.\\.\X:
) but not directories (\\.\X:\DIR
).\GLOBAL??
portion of the NT namespace).FspFsextProvider
. This is in preparation for WinFuse - FUSE for Windows and WSLinux.FastIoQueryOpen
, which allows opening files in kernel mode; this operation requires the file system to specify the FSP_FSCTL_VOLUME_PARAMS::AllowOpenInKernelMode
flag.FileFsSectorSizeInformation
and IOCTL_STORAGE_QUERY_PROPERTY / StorageAccessAlignmentProperty
has been added.FspFileSystemStartDispatcher
default number of threads (ThreadCount==0
) has been changed. See commit 3902874ac93fe40685d9761f46a96358ba24f24c for more.-o UserName=DOMAIN+USERNAME
and -o GroupName=DOMAIN+GROUPNAME
options. These function like the -o uid=UID
and -o gid=GID
options, but accept Windows user and groups names.-o dothidden
option that is used to add the Windows hidden file attribute to files that start with a dot.-o create_file_umask=nnn
and -o create_dir_umask=nnn
options that allow for more control than the -o create_umask=nnn
option.--ExactFileSystemName=FSNAME
option that removes the "FUSE-" prefix from the file system name. (Use with caution: see discussion in PR #251.) (Thanks @johntyner.)Read
, Write
and ReadDirectory
. (Thanks @dworkin.)VolumeInfoTimeout
, DirInfoTimeout
, etc).FileSystemHost.MountEx
that adds a ThreadCount
parameter.tst/memfs-fuse3
.opendir
. (GitHub issue billziss-gh/sshfs-win#54)Published by billziss-gh over 5 years ago
sudo mount -t drvfs x: /mnt/x
to mount.FspFsextProvider
. This is in preparation for WinFuse - FUSE for Windows and WSLinux.FastIoQueryOpen
, which allows opening files in kernel mode; this operation requires the file system to specify the FSP_FSCTL_VOLUME_PARAMS::AllowOpenInKernelMode
flag.FspFileSystemStartDispatcher
default number of threads (ThreadCount==0
) has been changed. See commit 3902874ac93fe40685d9761f46a96358ba24f24c for more.-o UserName=DOMAIN\USERNAME
and -o GroupName=DOMAIN\GROUPNAME
options. These function like the -o uid=UID
and -o gid=GID
options, but accept Windows user and groups names.-o dothidden
option that is used to add the Windows hidden file attribute to files that start with a dot.-o create_file_umask=nnn
and -o create_dir_umask=nnn
options that allow for more control than the -o create_umask=nnn
option.Read
, Write
and ReadDirectory
. (Thanks @dworkin.)VolumeInfoTimeout
, DirInfoTimeout
, etc).FileSystemHost.MountEx
that adds a ThreadCount
parameter.opendir
. (GitHub issue billziss-gh/sshfs-win#54)Published by billziss-gh over 5 years ago
FastIoQueryOpen
, which allows opening files in kernel mode; this operation requires the file system to specify the FSP_FSCTL_VOLUME_PARAMS::AllowOpenInKernelMode
flag.Published by billziss-gh over 5 years ago
ioctl
operation. (GitHub PR #214. Thanks @felfert.)Control
file system operation allows sending custom control codes to the file system using the Windows DeviceIoControl
API. FUSE ioctl
is also supported.SetDelete
file system operation can optionally be used instead of CanDelete
. SetDelete
or CanDelete
are used to handle the file "disposition" flag, which determines if a file is marked for deletion. See the relevant documentation for more details.FlushAndPurgeOnCleanup
has now been added to the .NET API. (GitHub PR #176; thanks @FrKaram.)RunAs="."
in the file system registry entry.STATUS_ACCESS_DENIED
on read-only directories. (GitHub issue #190. Thanks @alfaunits.)Published by billziss-gh almost 6 years ago
Control
file system operation allows sending custom control codes to the file system using the Windows DeviceIoControl
API. FUSE ioctl
is also supported.SetDelete
file system operation can optionally be used instead of CanDelete
. SetDelete
or CanDelete
are used to handle the file "disposition" flag, which determines if a file is marked for deletion. See the relevant documentation for more details.FlushAndPurgeOnCleanup
has now been added to the .NET API. (GitHub PR #176; thanks @FrKaram.)RunAs="."
in the file system registry entry.STATUS_ACCESS_DENIED
on read-only directories. (GitHub issue #190. Thanks @alfaunits.)Published by billziss-gh almost 6 years ago
Control
file system operation allows sending custom control codes to the file system using the Windows DeviceIoControl
API. FUSE ioctl
is also supported.SetDelete
file system operation can optionally be used instead of CanDelete
. SetDelete
or CanDelete
are used to handle the file "disposition" flag, which determines if a file is marked for deletion. See the relevant documentation for more details.FlushAndPurgeOnCleanup
has now been added to the .NET API. (GitHub PR #176; thanks @FrKaram.)RunAs="."
in the file system registry entry.STATUS_ACCESS_DENIED
on read-only directories. (GitHub issue #190. Thanks @alfaunits.)