What's New in CBFS Connect, CBFS Filter, and CBFS Vault 2022
The latest versions of CBFS Connect, CBFS Filter and CBFS Vault improve upon previous versions by offering new functionality and enhanced performance. This article is intended to provide a high level overview of new features and functionality.
CBFS Connect 2022
For easier development of virtual drives, we have included CBFS FUSE and CBFS Cache into CBFS Connect. Now, only one toolkit needs to be installed, simplifying dependency management for three commonly used components.
FUSE supports Windows, macOS, Linux and wherever libfuse is available. On Windows, FUSE utilizes the CBFS component driver, Linux uses libfuse and macOS uses macfuse. FUSE is ideal for developers who are familiar with Linux FUSE, or want to or want to build a cross-platform application with a simple and standard file API across all OSs.
The CBFS component now has Docker container interop. Applications running in the container can create a virtual drive without any additional steps. The driver is installed exclusively on the host and does not need to be part of the container initialization. This is exclusive to Docker containers with process isolation.
The NotifyDirectoryChange method has also been improved. Now, notifications can be sent to the OS about multiple file changes as well as file renames or file moves.
CBFS event handlers can now inform the driver that a file has changed externally to the virtual drive by returning the ERROR_FILE_INVALID code. This triggers the driver to request new file information.
In most cases upgrading is seamless and requires no code changes, as efforts have been made to maintain backwards compatibility. However, the latest release includes several API changes that may require code changes. The CBFS Connect 2022 API Changes article details major changes between the previous and latest release.
CBFS Filter 2022
File masks in CBMonitor and CBFilter can now be inverted for easier exclusion of files or filetypes from monitoring. File masks, whether regular or inverted, can be applied to Alternate Data Streams as well as the main file stream.
The Altitude property of both CBMonitor and CBFilter is now a string, which conforms to Microsoft's usage of load order groups and altitudes.
In CBFilter, if the monitoring rules conflict between the ACCESS_READ_ONLY flag and any callback/notify flags, the ACCESS_READ_ONLY flag will be ignored. The filtering application can deny file opening or modify the way the file is accessed in the BeforeOpenFile event handler.
If the ResolveNtDeviceToDriveLetter config setting is true, enumeration of default and reparse rules as well as GetReparseRuleByMask method will try to resolve the path in the mask back to a DOS device name rather than the NT device name.
In CBMonitor and CBFilter new events have been added to methods involving reparse point operations and operations with extended attributes.
In most cases upgrading is seamless and requires no code changes, as efforts have been made to maintain backwards compatibility. However, the latest release includes several API changes that may require code changes. The CBFS Filter 2022 API Changes article details major changes between the previous and latest release.
CBFS Vault 2022
Journaling can now be enabled separately for metadata only, or metadata and data, by setting the JournalingMode parameter. New FileBeforeCopy and FileAfterCopy events have been added to track the progress of file import/export operations.
In most cases upgrading is seamless and requires no code changes, as efforts have been made to maintain backwards compatibility. However, the latest release includes several API changes that may require code changes. The CBFS Vault 2022 API Changes article details major changes between the previous and latest release.