Pre-release
Pre-release

@billziss-gh billziss-gh released this Sep 27, 2018 · 25 commits to master since this release

Assets 3

THIS IS A PRE-RELEASE

  • This pre-release contains FUSE 3.2 support. If you have a FUSE 3.2 file system I would love to hear your feedback.
  • This pre-release includes signed drivers for Windows 7, 8, 10, but not Server 2016.

CHANGES SINCE 2018.1

  • FUSE3 API (version 3.2) is now available. The FUSE2 API (version 2.8) also remains supported.
  • New Control file system operation allows sending custom control codes to the file system using the Windows DeviceIoControl API. FUSE ioctl is also supported.
  • New 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.)
  • New sample file system "airfs" contributed by @JohnOberschelp. Airfs is an in-memory file system like Memfs on which it is based on; it has received substantial improvements in how the file name space is maintained and has been modified to use modern C++ techniques by John.
  • New sample file system "passthrough-fuse3" passes all operations to an underlying file system. This file system is built using the FUSE3 API. It builds and runs on both Windows and Cygwin.
  • The FUSE layer now supports multiple file systems within a single process. This is a long standing problem that has been fixed. (GitHub issue #135.)
  • The FSD includes an experimental fix for a Windows problem: that case-sensitive file systems do not work properly when mounted as directories. See the relevant FAQ entry.
  • The FSD includes a fix for an incompatibility with DrWeb Antivirus. (GitHub issue #192.)
Pre-release
Pre-release

@billziss-gh billziss-gh released this Jul 30, 2018 · 49 commits to master since this release

Assets 3

THIS IS A PRE-RELEASE

  • This pre-release contains experimental FUSE 3.2 support. If you have a FUSE 3.2 file system I would love to hear your feedback.
  • This pre-release contains fundamental changes in how FUSE loops (fuse_loop and fuse_loop_mt) are run. If you are running a FUSE file system and you experience differences in behavior with prior versions of WinFsp, please open an issue to discuss.
    • NOTE: Turns out that the new FUSE loops broke fuse_daemonize. This problem has been fixed in commit bef5ba7, which will be included in the next beta.
  • This pre-release includes signed drivers for Windows 7, 8, 10, but not Server 2016.

CHANGES SINCE 2018.1

  • FUSE3 API (version 3.2) is now available. The FUSE2 API (version 2.8) also remains supported.
  • New Control file system operation allows sending custom control codes to the file system using the Windows DeviceIoControl API. FUSE ioctl is also supported.
  • FlushAndPurgeOnCleanup has now been added to the .NET API. (GitHub PR #176; thanks @FrKaram.)
  • New sample file system "airfs" contributed by @JohnOberschelp. Airfs is an in-memory file system like Memfs on which it is based on; it has received substantial improvements in how the file name space is maintained and has been modified to use modern C++ techniques by John.
  • New sample file system "passthrough-fuse3" passes all operations to an underlying file system. This file system is built using the FUSE3 API. It builds and runs on both Windows and Cygwin.
  • The FUSE layer now supports multiple file systems within a single process. This is a long standing problem that has been fixed. (GitHub issue #135.)
Pre-release
Pre-release

@billziss-gh billziss-gh released this Jun 19, 2018 · 129 commits to master since this release

Assets 3

THIS IS A PRE-RELEASE

  • This pre-release includes signed drivers for Windows 7, 8, 10, but not Server 2016.

CHANGES SINCE 2018.1

  • New Control file system operation allows sending custom control codes to the file system using the Windows DeviceIoControl API. FUSE ioctl is also supported.

@billziss-gh billziss-gh released this Jun 9, 2018 · 139 commits to master since this release

Assets 3

CHANGES SINCE 2017.2

  • Multiple Launcher changes:
    • New FspLaunch API. File systems can be started, stopped, queried and listed using FspLaunchStart, FspLaunchStop, FspLaunchGetInfo and FspLaunchGetNameList. The API is available in <winfsp/launch.h>.
    • New Launcher registry settings RunAs and WorkDirectory. RunAs allows the laucher to launch a file system process under the service accounts LocalService and NetworkService. WorkDirectory can be used to specify the work directory for a newly launched file system process.
  • FSP_FSCTL_VOLUME_PARAMS::FlushAndPurgeOnCleanup limits the time that Windows keeps files open after an application has closed them. This purges the cache on the last CloseHandle, which is a performance drawback.
    • This is now the default behavior on FUSE. To revert to the previous behavior of keeping files open indefinitely use -o KeepFileCache.
  • FSP_FSCTL_VOLUME_PARAMS has been extended with fine-grained timeouts: VolumeInfoTimeout, DirInfoTimeout, SecurityTimeout, StreamInfoTimeout. Set FSP_FSCTL_VOLUME_PARAMS::Version == sizeof(FSP_FSCTL_VOLUME_PARAMS) to access the new fields.
    • New FUSE optons VolumeInfoTimeout, DirInfoTimeout complement the existing FileInfoTimeout.
  • The FSD (File System Driver) and its interaction with the Windows MUP (Multiple UNC Provider) has been changed. In practice this eliminates the delays experienced when right-clicking on a WinFsp-backed network drive in the Windows Explorer. (GitHub issue #87.)
  • The WinFsp network provider is now added first in the provider order list. Previously it was added last. (GitHub PR #131; thanks @felfert.)
  • The WinFsp installer now uses the Wix Provides dependency extension to provide a WinFsp dependency key. (GitHub PR #129; thanks @felfert.)
  • New FUSE create_umask option. (GitHub issue #138.)
  • Fix C++ compilation error for WinFsp-FUSE. (GitHub PR #154; thanks @benrubson.)
Pre-release
Pre-release

@billziss-gh billziss-gh released this May 1, 2018 · 143 commits to master since this release

Assets 3

THIS IS A PRE-RELEASE

  • This pre-release should be the last beta release before 2018.1.
  • This pre-release includes signed drivers for Windows 7, 8, 10, but not Server 2016.

CHANGES SINCE 2017.2

  • Multiple Launcher changes:
    • New FspLaunch API. File systems can be started, stopped, queried and listed using FspLaunchStart, FspLaunchStop, FspLaunchGetInfo and FspLaunchGetNameList. The API is available in <winfsp/launch.h>
    • New Launcher registry settings RunAs and WorkDirectory. RunAs allows the laucher to launch a file system process under the service accounts LocalService and NetworkService. WorkDirectory can be used to specify the work directory for a newly launched file system process.
  • FSP_FSCTL_VOLUME_PARAMS::FlushAndPurgeOnCleanup limits the time that Windows keeps files open after an application has closed them. This purges the cache on the last CloseHandle, which is a performance drawback.
    • This is now the default behavior on FUSE. To revert to the previous behavior of keeping files open indefinitely use -o KeepFileCache.
  • FSP_FSCTL_VOLUME_PARAMS has been extended with fine-grained timeouts: VolumeInfoTimeout, DirInfoTimeout, SecurityTimeout, StreamInfoTimeout. Set FSP_FSCTL_VOLUME_PARAMS::Version == sizeof(FSP_FSCTL_VOLUME_PARAMS) to access the new fields.
    • New FUSE optons VolumeInfoTimeout, DirInfoTimeout complement the existing FileInfoTimeout.
  • The FSD (File System Driver) and its interaction with the Windows MUP (Multiple UNC Provider) has been changed. In practice this eliminates the delays experienced when right-clicking on a WinFsp-backed network drive in the Windows Explorer. (GitHub issue #87.)
  • The WinFsp network provider is now added first in the provider order list. Previously it was added last. (GitHub PR #131; thanks @felfert.)
  • The WinFsp installer now uses the Wix Provides dependency extension to provide a WinFsp dependency key. (GitHub PR #129; thanks @felfert.)
  • New FUSE create_umask option. (GitHub issue #138.)
  • Fix C++ compilation error for WinFsp-FUSE. (GitHub PR #154; thanks @benrubson.)
  • NOTE: Prior 2018.1 betas run the MEMFS sample file systems under the LocalService account. This is no longer the case: going forward the MEMFS file systems will be running under the LocalSystem account (as in 2017.2).
Pre-release
Pre-release

@billziss-gh billziss-gh released this Jan 23, 2018 · 174 commits to master since this release

Assets 3

THIS IS A PRE-RELEASE

  • This pre-release contains kernel-mode changes. While every precaution has been taken to ensure stability, it is recommended that this pre-release is only installed by developers and/or power users.
  • This pre-release includes signed drivers for Windows 7, 8, 10, but not Server 2016.

CHANGES SINCE 2017.2

  • Multiple Launcher changes:
    • New FspLaunch API. File systems can be started, stopped, queried and listed using FspLaunchStart, FspLaunchStop, FspLaunchGetInfo and FspLaunchGetNameList.
    • New Launcher registry settings RunAs and WorkDirectory. RunAs allows the laucher to launch a file system process under the service accounts LocalService and NetworkService. WorkDirectory can be used to specify the work directory for a newly launched file system process.
  • The MEMFS sample file systems are now launched under the LocalService account.
  • The FSD (File System Driver) and its interaction with the Windows MUP (Multiple UNC Provider) has been changed. In practice this eliminates the delays experienced when right-clicking on a WinFsp-backed network drive in the Windows Explorer. (GitHub issue #87.)
  • The WinFsp network provider is now added first in the provider order list. Previously it was added last. (GitHub PR #131; thanks @felfert.)
  • The WinFsp installer now uses the Wix Provides dependency extension to provide a WinFsp dependency key. (GitHub PR #129; thanks @felfert.)
Pre-release
Pre-release

@billziss-gh billziss-gh released this Jan 5, 2018 · 193 commits to master since this release

Assets 3

THIS IS A PRE-RELEASE

  • This pre-release includes signed drivers for Windows 7, 8, 10, but not Server 2016.

CHANGES SINCE 2017.2

  • The WinFsp Launcher can now be controlled by the new FspLaunch API. File systems can be started, stopped, queried and listed using FspLaunchStart, FspLaunchStop, FspLaunchGetInfo and FspLaunchGetNameList.
  • The WinFsp launcher now supports new registry settings RunAs and WorkDirectory. RunAs allows the laucher to launch a file system process under the service accounts LocalService and NetworkService. WorkDirectory can be used to specify the work directory for a newly launched file system process.
  • The MEMFS sample file systems are now launched under the LocalService account.
  • The WinFsp network provider is now added first in the provider order list. Previously it was added last. (GitHub PR #131; thanks @felfert.)
  • The WinFsp installer now uses the Wix Provides dependency extension to provide a WinFsp dependency key. (GitHub PR #129; thanks @felfert.)

@billziss-gh billziss-gh released this Dec 12, 2017 · 221 commits to master since this release

Assets 3

This is the latest WinFsp 2017.2 release that also fixes a problem on Windows 7 (issue #127).

CHANGES SINCE 2017.1

  • WinFsp-FUSE now supports BSD flags (Windows file attributes) during getattr and fgetattr. It also adds the chflags operation. BSD flags support requires use of the FSP_FUSE_CAP_STAT_EX capability and the new struct fuse_stat_ex which includes an st_flags field. If the preprocessor macro FSP_FUSE_USE_STAT_EX is defined before inclusion of <fuse.h> then struct fuse_stat will also be defined to include the st_flags field.
  • WinFsp-FUSE also adds the following OSXFUSE operations: setcrtime, setchgtime. These can be used to set the creation (birth) time and change (ctime) time of a file.
  • New GetDirInfoByName file system operation adds fast queries of directory info by file name rather than pattern [e.g. FindFirstFileW(L"foobar", FindData)]. Tests with fsbench showed that such queries are sped up by an order of magnitude when using GetDirInfoByName in MEMFS. Case-sensitive FUSE file systems get this optimization for free. The .NET layer also adds GetDirInfoByName.
  • New FspFileSystemOperationProcessId API adds support for getting the originating process ID (PID) during Create, Open and Rename calls. FUSE file systems can now access fuse_context::pid. The .NET layer also adds GetOperationProcessId.
  • New command line tool fsptool allows command line access to some WinFsp features.
  • The WinFsp launcher now passes the name of the user who launched the file system as a special parameter %U. This is useful to file systems that use the launcher infrastructure, such as SSHFS-Win. [Please note that in earlier betas the user name was passed as parameter %3; the previous method was insecure and is no longer supported.]
  • Important GitHub issues fixed: #96, #97, #103, #107, #127

@billziss-gh billziss-gh released this Dec 8, 2017 · 224 commits to master since this release

Assets 3

CHANGES SINCE 2017.1

  • WinFsp-FUSE now supports BSD flags (Windows file attributes) during getattr and fgetattr. It also adds the chflags operation. BSD flags support requires use of the FSP_FUSE_CAP_STAT_EX capability and the new struct fuse_stat_ex which includes an st_flags field. If the preprocessor macro FSP_FUSE_USE_STAT_EX is defined before inclusion of <fuse.h> then struct fuse_stat will also be defined to include the st_flags field.
  • WinFsp-FUSE also adds the following OSXFUSE operations: setcrtime, setchgtime. These can be used to set the creation (birth) time and change (ctime) time of a file.
  • New GetDirInfoByName file system operation adds fast queries of directory info by file name rather than pattern [e.g. FindFirstFileW(L"foobar", FindData)]. Tests with fsbench showed that such queries are sped up by an order of magnitude when using GetDirInfoByName in MEMFS. Case-sensitive FUSE file systems get this optimization for free. The .NET layer also adds GetDirInfoByName.
  • New FspFileSystemOperationProcessId API adds support for getting the originating process ID (PID) during Create, Open and Rename calls. FUSE file systems can now access fuse_context::pid. The .NET layer also adds GetOperationProcessId.
  • New command line tool fsptool allows command line access to some WinFsp features.
  • The WinFsp launcher now passes the name of the user who launched the file system as a special parameter %U. This is useful to file systems that use the launcher infrastructure, such as SSHFS-Win. [Please note that in earlier betas the user name was passed as parameter %3; the previous method was insecure and is no longer supported.]
  • Important GitHub issues fixed: #96, #97, #103, #107
Pre-release
Pre-release

@billziss-gh billziss-gh released this Nov 29, 2017 · 235 commits to master since this release

Assets 3

THIS IS A PRE-RELEASE

  • This pre-release will be the last beta before release of WinFsp 2017.2.
  • This pre-release includes signed drivers for Windows 7, 8, 10, but not Server 2016.

CHANGES SINCE 2017.1

  • WinFsp-FUSE now supports BSD flags (Windows file attributes) during getattr and fgetattr. It also adds the chflags operation. BSD flags support requires use of the FSP_FUSE_CAP_STAT_EX capability and the new struct fuse_stat_ex which includes an st_flags field. If the preprocessor macro FSP_FUSE_USE_STAT_EX is defined before inclusion of <fuse.h> then struct fuse_stat will also be defined to include the st_flags field.
  • WinFsp-FUSE also adds the following OSXFUSE operations: setcrtime, setchgtime. These can be used to set the creation (birth) time and change (ctime) time of a file.
  • New GetDirInfoByName file system operation adds fast queries of directory info by file name rather than pattern [e.g. FindFirstFileW(L"foobar", FindData)]. Tests with fsbench showed that such queries are sped up by an order of magnitude when using GetDirInfoByName in MEMFS. Case-sensitive FUSE file systems get this optimization for free. The .NET layer also adds GetDirInfoByName.
  • New FspFileSystemOperationProcessId API adds support for getting the originating process ID (PID) during Create, Open and Rename calls. FUSE file systems can now access fuse_context::pid. The .NET layer also adds GetOperationProcessId.
  • New command line tool fsptool allows command line access to some WinFsp features.
  • The WinFsp launcher now passes the username of the user who launched the file system as parameter %3. This is useful to file systems that use the launcher infrastructure, such as SSHFS-Win. [NOTE: this turns out to have some security issues. In the final 2017.2 release this is replaced by a special parameter %U that does not have security issues.]
  • Important GitHub issues fixed: #96, #97, #103, #107