CallbackFilter Changelog

What's new in CallbackFilter 4.1.105

Mar 5, 2017
  • BSOD could happen in mini-filter mode, in post-open request handler, if the file didn't exist. Fixed.

New in CallbackFilter 4.1.104 (Sep 21, 2016)

  • Various optimizations based on suggestions given by prefast tool.
  • Notifications in mini-filter mode could be missed for files which were opened before the filter was installed. Fixed.
  • Memory leaks in user mode. Fixed.

New in CallbackFilter 4.1.103 (Aug 8, 2016)

  • Several filesystem requests were handled in the way that conflicts with WIM image files mounting. Workaround added.

New in CallbackFilter 4.1.102 (Jul 4, 2016)

  • Tracking of directory enumeration operations in mini-filter mode could cause BSOD in some rare cases. Fixed.

New in CallbackFilter 4.1.101 (May 26, 2016)

  • added a getter for FilterMode property
  • In mini-filter mode BSOD could happen in OpenFile() method. Fixed.
  • In mini-filter mode write notifications could be omitted when FilterFailedRequests = false. Fixed.
  • In mini-filter mode the last element of the full file name in user callbacks could be absent. Fixed.

New in CallbackFilter 4.1.100 (Apr 18, 2016)

  • Added DisableRemoteCaching property (boolean). Set it to true if the filtered encrypted files can be accessed by remote systems.
  • Improved compatibility with Microsoft APP-V (BSOD on startup could happen)
  • Increased speed of handling of rules, in which the name of the process is specified

New in CallbackFilter 4.1.99 (Mar 9, 2016)

  • Potential memory leaks in Windows 10 have been fixed
  • Some issues in handling of virtual files have been fixed

New in CallbackFilter 4.1.98 (Mar 9, 2016)

  • Altitude-related changes:
  • InstallDriverEx function added to the installer DLL. It lets you specify the driver mode (legacy or mini-filter) and specify the Altitude parameter, which is mandatory for mini-filter mode
  • The list of parameters in InstallDriverEx method has been altered to include the Altitude parameter, which is mandatory for mini-filter mode
  • Reading the Altitude property value or setting FilterMode to MinifilterMode can cause an exception, if the altitude has not been properly set.

New in CallbackFilter 4.0.98 (Feb 20, 2016)

  • Altitude-related changes:
  • InstallDriverEx function added to the installer DLL. It lets you specify the driver mode (legacy or mini-filter) and specify the Altitude parameter, which is mandatory for mini-filter mode
  • The list of parameters in InstallDriverEx method has been altered to include the Altitude parameter, which is mandatory for mini-filter mode
  • Reading the Altitude property value or setting FilterMode to MinifilterMode can cause an exception, if the altitude has not been properly set.

New in CallbackFilter 4.0.97 (Jan 14, 2016)

  • GetOriginator* functions, if called from OnReadFileC / OnWriteFileC callback, now return the values in context of the thread, that is "current" to the operation. Previously the values, saved from OnOpenFile/OnCreateFile, have been returned.
  • If VirtualFile flag was set for the real file in OnCreateFileC / OnOpenFileC callback, such file was opened as virtual with all possible side effects. A check has been added to prevent such situation.
  • Legend:
  • Important change
  • Added feature
  • Improved/changed feature
  • Bug fixed

New in CallbackFilter 4.0.96 (Dec 10, 2015)

  • In minifilter mode in certain situations OnPostGetFileSizesC callback was not triggered. Fixed.
  • If the directory contained both virtual and non-virtual files, some of them could be skipped during enumeration. Fixed.
  • Enumeration of the directories with filtered or hidden files, if the directory contained more than 1000 entries, could skip some files. Fixed.

New in CallbackFilter 4.0.95 (Nov 3, 2015)

  • When in mminifilter mode, the driver could skip callbacks for network files. Fixed.
  • Network files, opened with OpenFile() method, could fail to be read. Fixed.

New in CallbackFilter 4.0.94 (Nov 2, 2015)

  • The workaround has been added for issues specific to the way oplocks work in Windows10/WinRT.
  • [.NET] Wrong error code and message could be displayed in ECbFltError exception class in .NET.

New in CallbackFilter 4.0.93 (Sep 25, 2015)

  • Improved FlushFileOnOpen property handling.
  • Improved reparse handling when the source and destination paths are equal.
  • A bug that happened when virtual files were accessed through the network has been fixed.
  • Added synchronous OnUserFsRequestC and OnPostUserFsRequestC events
  • Added synchronous OnFilterAttachToFsVolumeC and OnFilterDetachFromFsVolumeC events and ProcessMountVolumeEvent property to control those events
  • [.NET] Added assemblies for .NET 4.6
  • [C++] Added support for Visual Studio 2015
  • Fixed small memory leaks which could happen on deactivation of the driver which worked in mini-filter mode.
  • Fixed key validation
  • [VCL] Removed Delphi 5 and Delphi 6 units and packages
  • All functionality except Virtual Files now works in mini-filter mode.
  • [VCL] Added RAD Studio XE8 packages
  • Windows 10 compatibility improved
  • DesiredAccess parameter has been added to the Reparse callback
  • Various minor bug fixes.

New in CallbackFilter 3.1.90 (Jul 20, 2015)

  • If the filter is active, an attempt to uninstall it will throw ACCESS_DENIED error. The change is necessary to allow driver unlocking and to make it possible to uninstall the driver without reboot.
  • Various minor fixes.

New in CallbackFilter 3.1.89 (Jun 27, 2015)

  • Added transparent support for ODX requests
  • Fixed small memory leaks which could happen on deactivation of the driver which worked in mini-filter mode.

New in CallbackFilter 3.1.88 (Jun 9, 2015)

  • The driver in mini-filter mode could crash in case of abnormal application shutdown with filters being activated. Fixed.

New in CallbackFilter 3.1.87 (May 21, 2015)

  • Certain IRPs (FSCTL_FILE_LEVEL_TRIM, FSCTL_OFFLOAD_WRITE, FSCTL_SET_ZERO_DATA) were intercepted only when they originated from the user mode, but not the kernel mode. Now kernel-initiated IRPs are tracked as well.
  • Calling DeleteAllFilterRules on a large number of rules (more than approximately 20 rules) and calling DetachFilter() immediately after this could cause unpleasant side effects. Fixed.

New in CallbackFilter 3.1.86 (May 1, 2015)

  • added ability to create virtual files with predefined size - now PostGetFileSizesC callback / event handler is called during creation of virtual file to request the size of the file.
  • CbFltUserFsRequestEventN didn't work in mini-filter mode. Fixed.
  • minor bug fixes

New in CallbackFilter 3.0.85 (Mar 31, 2015)

  • BSOD could happen in PostCreateFileEventN/PostOpenFileEventN. Fixed.
  • EncryptWithHeader sample didn't account for certain file operation scenarios, used in particular by Visio application. Fixed.

New in CallbackFilter 3.0.84 (Mar 9, 2015)

  • added new notification CbFltUserFsRequestEventN which reports about IRPs with the following control codes: FSCTL_FILE_LEVEL_TRIM, FSCTL_OFFLOAD_WRITE, FSCTL_SET_ZERO_DATA
  • added possibility to install/uninstall driver in mini-filter mode without reboot
  • minor stability issues fixed
  • minor bug in EncryptWithHeader C# sample in a part of file rename processing fixed
  • a bug with filter mask uses '?' symbols fixed.

New in CallbackFilter 3.0.83 (Feb 17, 2015)

  • Improved stabilty in a low resources environment.
  • Various code optimisations and minor bug fixes

New in CallbackFilter 3.0.82 (Jan 28, 2015)

  • Logging to system event log is disabled by default. In order to enable it you need to create the value "Enabled" of type "dword" in "HKEY_LOCAL_MACHINE\SOFTWARE\EldoS\EventLog" and reboot the system.
  • [CPP] Changed deprecated CRT functions with their safe underscored analogs.
  • In some cases (when the drive letter could not be resolved) the path in some callbacks could miss the last character (an issue has been introduced in one of the last updates). Fixed.
  • [VCL] RAD Studio XE7 generated wrong code which lead to Access Violation on driver installation. Workaround has been added.

New in CallbackFilter 3.0.81 (Dec 30, 2014)

  • [VCL] RAD Studio XE7 support added
  • OnRenameOrMove callback using virtual files didn't always work. Fixed.
  • Directory listing didn't work correctly when virtual and non-virtual files were present in the same directory with more than 250 files. Fixed.
  • A virtual file could not be created in a root directory. Fixed.

New in CallbackFilter 3.0.80 (Dec 4, 2014)

  • Small memory leaks in kernel have been fixed.
  • OnEnumerateDirectory callback caused a system hang when the folder was accessed from remote client. Fixed.
  • Use of OnRenameOrMove callback could cause BSOD when renaming the file through the network link. Fixed.
  • sometimes worker threads could keep running when the application was closed. Fixed.

New in CallbackFilter 3.0.78 (Nov 10, 2014)

  • minifilter mode improved
  • Various BSODs reported by users have been fixed

New in CallbackFilter 3.0.77 (Oct 8, 2014)

  • RenameOrMove callback handling improved in EncryptWithHeader samples

New in CallbackFilter 3.0.76 (Aug 25, 2014)

  • added ResolveNtDeviceToDriveLetter property
  • improved compatibility with Kaspersky Labs products

New in CallbackFilter 3.0.75 (Jul 28, 2014)

  • Altitude property added for mini-filter mode.

New in CallbackFilter 3.0.73 (Jun 12, 2014)

  • [VCL] Added packages and defines for RAD Studio XE6
  • added InstallDriverEx method which allows to install the driver in minifilter mode (minifilter mode is limited to notifications only).
  • added FilterMode property, that allow to switch mode for the already installed driver. Reboot is required.
  • added the ability to use virtual paths as a reparse source paths.
  • the problem with reparse rules set on different volumes (suppressed warning about deletion to recycle bin) hassss been fixed

New in CallbackFilter 3.0.72 (Jun 12, 2014)

  • Default rules didn't work in some conditions. Fixed.

New in CallbackFilter 3.0.70 (Jun 12, 2014)

  • Added FlushNotificationQueue() method that lets you wait synchronously for completion of currently queued notifications
  • Improved virtual files handling
  • Various issues with handling of virtual files have been fixed
  • Issues with reparse rule set to different volumes have been fixed

New in CallbackFilter 3.0.69 (Mar 28, 2014)

  • ThreadPoolSize property replaced with MinWorkerThreadCount and MaxWorkerThreadCount properties
  • [.NET] Added FileSystemWatcher sample in C#.
  • SerializeCallbacks not always ensured one worker thread. Fixed.
  • If the application was closed with handles not closed after being opened with OpenFile() method, BSOD could happen. Fixed.

New in CallbackFilter 3.0.68 (Dec 17, 2013)

  • [VCL] Added VirtualFilesCreation sample
  • BSOD could happen during some operations with virtual files. Fixed.
  • When reparsing was done from/to different volumes, BSOD could occur. Fixed.
  • Source file path in reparse callback sometimes was incorrect. Fixed.
  • [VCL] APIs didn't work in some situations due to the bug in C++Builder compiler (used to compiled core of the API). Workaround added.

New in CallbackFilter 3.0.67 (Dec 12, 2013)

  • [VCL] Added RAD Studio XE5 support
  • [NET] Added VS 2013 and .NET 4.5.1 support.
  • random BSODs have been fixed.
  • The handle created in CreateNonCbFile() didn't work properly in ReadFile/WriteFile Win32 api
  • OpenFile() didn't open the file if the volume had over 9 partitions various code improvements

New in CallbackFilter 3.0.66 (Oct 28, 2013)

  • improved compatability with Windows 8 and previous operation systems in virtual files handling.
  • fixed reparse callback issue that happened when destination file name pointed at the root directory on different volume.
  • fixed various problems with virtual file creation
  • [CPP] fixed VirtualFilesCreation sample.

New in CallbackFilter 3.0.65 (Sep 23, 2013)

  • GetOriginatorProcessName now returns the logical path to the process
  • VCL] Added RAD Studio XE5 support
  • Improvements in handling of unsupported types of requests for virtual files (eg. flush file buffers is not yet supported).
  • ProcMon sample now shows how to use GetOriginator* functions

New in CallbackFilter 3.0.64 (Aug 29, 2013)

  • Includes changes from the previous Beta versions

New in CallbackFilter 3.0.63 Beta (Aug 29, 2013)

  • CreateFile and DeleteFile methods have been removed. See Release Notes for details.
  • Now it's possible to use GetFileInformationByHandle() Win32 API function from callback / event handlers. The call must be made using a handle obtained from CallbackFilter.OpenFile() method.
  • Added support for opening virtual file over the real file with a same path and name. Read/Write/Execute/Delete requests are performed over virtual file. Real file is overwritten by virtual file by returning VirtualFile = TRUE from PostOpenFile callback. It also requires EnumerateDirectory callback handling in order to reflect overlapped files (virtual/real) size changes, to show it correctly in file explorer.
  • [VCL] In C++Builder the linker could not call GetDriverStatus due to its bug (pointer to structure made the linker not see the function in the library). Workaround added.
  • GetFiterRule* methods worked not correctly with multiple CallbackFilter instances. Fixed.
  • Possible BSOD when new virtual file created. Fixed.

New in CallbackFilter 3.0.62 Beta (Aug 29, 2013)

  • Added VirtualFileCreation sample.
  • [VCL] Added support for Delphi XE3 and XE4 and C++Builder XE3 and XE4.
  • [All] FileAttributes parameter in On*Create*() and On*Open*() callbacks is 32-bit now to include FILE_ATTRIBUTE_VIRTUAL_FILE (0x10000). The flag indicates that the file was previously created/opened as virtual.

New in CallbackFilter 3.0.61 Beta (Aug 29, 2013)

  • CallbackFilter was split into Lite and Professional flavors. Lite version doesn't include synchronous callbacks and virtual files.

New in CallbackFilter 3.0.60 Beta (Aug 29, 2013)

  • NET assembly has been renamed to CbFlt3Net.dll to avoid conflicts with CallbackFilter 2.x.
  • CreateDisposition parameter of file creation/opening callbacks now contains values defined in Win32 (in opposite to NT native constants used in CallbackFilter 2.x).
  • support for Windows 8 and Windows 2012 Server has been added;
  • Virtual files and directories can be created now;
  • Now you can (optionally) track failed filesystem requests. Operation status code is passed to post- and notification callbacks / event handlers.
  • Process-specific rules are now supported. They work in callback rules and access rules;
  • DetachFilter operation can be both synchronous and asynchronous now.
  • OnRenameOrMoveFileEventC callback got additional ReplaceIfExists parameter

New in CallbackFilter 2.3.61 (Aug 17, 2013)

  • Network files occasionally were not correctly. The issue appeared in build 60. Fixed.

New in CallbackFilter 2.3.60 (Aug 10, 2013)

  • Reparse rule with a mask set to different FS volume caused a warning in explorer - "unable to delete file to recycle bin". The workaround to this problem added, so now explorer deletes files permanently without warnings.
  • Control code IOCTL_SET_WRITE_BUFFER_EXTRA_LENGTH, in order to not conflict with CBFilter version 2.3.57 with a call to AddBytesToWriteBuffer(). Driver version 2.3.57 may stay in memory after the deinstallation that was made without reboot, this may cause a conflict when call to AddBytesToWriteBuffer() invokes an AddPagesToWriteBuffer() in kernel mode.
  • DeleteReparseFileNameRule and DeleteAllReparseFileNameRules worked correctly only with even length of ProductName string.

New in CallbackFilter 2.3.59 (Jul 20, 2013)

  • Now it's possible to use GetFileInformationByHandle() Win32 API function from callback / event handlers. The call must be made using a handle obtained from CallbackFilter.OpenFile() method.
  • GetFiterRule* methods worked not correctly with multiple CallbackFilter instances. Fixed.
  • Various minor fixes

New in CallbackFilter 2.3.58 (May 13, 2013)

  • AddPagesToWriteBuffer method replaced with AddBytesToWriteBuffer
  • Fixed various compatibility problems arising from antivirus activity

New in CallbackFilter 2.3.57 (Feb 27, 2013)

  • Added EncryptWithHeader sample
  • Added AddPagesToWriteBuffer method (see help file for description)
  • Improved handling of operations which involve faking of file change

New in CallbackFilter 2.3.56 (Jan 3, 2013)

  • added flags FILE_DIRECTORY_FILE and FILE_NON_DIRECTORY_FILE to CreateOptions parameter of Open/Create file callbacks
  • fixed displaying of volume names in CbFltFilterAttachToFsVolumeEvent / CbFltFilterDetachFromFsVolumeEvent when the total number of volumes in the system exceeds 10
  • fixed the problem with MUP interaction on Windows Vista and later when monitored local files accessed through the UNC path (possible BSOD) various minor bug fixes

New in CallbackFilter 2.3.55 (Oct 29, 2012)

  • fixed the problem with rename callback, when destination name was not valid (generally happened when original file was opened using reparse rule);
  • fixed the problem with MUP interaction on Windows Vista and later when monitored local files accessed through the UNC path (possible BSOD);
  • other minor bug fixes

New in CallbackFilter 2.3.53 (Aug 30, 2012)

  • Access Violation errors in user-mode, introduced in the latest builds, have been fixed.
  • DOS syntax was not recognized by DeleteFilterRule if the driver was not attached. Fixed.

New in CallbackFilter 2.3.52 (Aug 30, 2012)

  • Fixes in reparse rule handling

New in CallbackFilter 2.3.49 (Aug 30, 2012)

  • Situation when reparse event handler returned the same path as the one begin reparsed (i.e. redirection to itself took place) was not handled. Fixed.
  • OpenFile() and CreateNonCbFile() could cause BSOD in some cases (issue introduced in build 48). Fixed.

New in CallbackFilter 2.3.48 (Aug 30, 2012)

  • UserContext could be lost due to reference count error on file open/close, when multiple filter attach/detach are performed and files are copied to filtered paths. Fixed.
  • AddPassThroughRule was not working with assigned access rules. Fixed.
  • other minor bugfixes.

New in CallbackFilter 2.3.46 (Jan 26, 2012)

  • fixed rare BSOD on filter detaching right after deletion of filtered file
  • fixed WriteOnly rule
  • various optimizations

New in CallbackFilter 2.3.45 (Jan 26, 2012)

  • fixed Encrypt sample - rare case when garbage data read from the newly created file in \Crypt folder
  • fixed rare deadlocks on FilterDetach call
  • deleted noninformative FileSize changes notifications related to Create/Open callback with specific CreateDisposition values

New in CallbackFilter 2.3.43 (Aug 27, 2011)

  • Some memory leaks when SetReadWriteFileInPreCreatePath = false have been fixed

New in CallbackFilter 2.1.34 (Jan 29, 2011)

  • Filter rules didn't work if they were added before the filter was activated. Fixed.
  • Exception happened if filter rules were not deleted when filter was deactivated. Fixed.
  • AddFilterAccessRule() function of .NET API always returned false. Fixed.

New in CallbackFilter 2.1.33 (Jan 29, 2011)

  • Added functions to work with Extended Attribute filtering
  • The issue in AddFilterDefaultRule() function has been fixed

New in CallbackFilter 2.1.32 (Jan 29, 2011)

  • Added ReadWriteFileInPreCreatePath property that enables or disables possibility to read/write the file in OnCreate/OnOpen callbacks.
  • The issue with using OpenFile() method from limited account has been fixed
  • The issue with adding filtration rules in unique volume name format ( Volume\{GUID}\ ) for dynamic disks has been fixed
  • Minor fixes related to seldom system crashes during application activation / deactivation were made

New in CallbackFilter 2.1.31 (Jan 29, 2011)

  • Added FlushFilesOnClose property
  • an issue in notification callbacks, that in certain conditions could cause system lock, has been fixed

New in CallbackFilter 2.1.30 (Jan 29, 2011)

  • Fixed the recently introduced issue with system boot or shutdown blocking, which could occur on some systems
  • Fixed the issue with storing callback context when several filters were set in parallel
  • Fixed the system crash that could occur when two or more filters monitored the same folder
  • [.NET] Fixed references in .NET samples
  • [VCL] Wrong precompiled units for Delphi 5 were included. Fixed.

New in CallbackFilter 2.1.29 (Jan 29, 2011)

  • Fixed the crash that happened during filtration of enumeration of network disks
  • Fixed some problems with Encrypt sample operating with network disks
  • Fixed the crash that happened if timeout expired in OnCreateFile/OnOpenFile

New in CallbackFilter 2.1.28 (Jan 29, 2011)

  • Added OnReparseFileName callback / event. The event lets you change reparsed file name if needed.
  • memory leaks, introduced in build 27 has been fixed
  • error in OpenFile method in cases when the file could not be opened due to access error has been fixed
  • in some cases the system could crash when reparse rules were set. Fixed.
  • In some cases the system crashed when the timeout elapsed during callback execution. Fixed.
  • In some cases 64-bit system crashed when setting a filter on the root folder of system partition. Fixed.

New in CallbackFilter 2.1.27 (Jan 29, 2011)

  • Fixed the problem with OnEnumerateDirectory callback for root folders
  • Fixed the problem with opening the file using OpenFile() method of CallbackFilter API, if the file path exceeded certain length (larger than MAX_PATH + variable part)

New in CallbackFilter 2.0.24 (Apr 26, 2010)

  • Added OnFilterAttach and OnFilterDetach callbacks / events
  • Added possibility to check FILE_ATTRIBUTE_DIRECTORY attribute in FileAttributes parameter of OnPostOpen and OnPostCreate callbacks
  • Encrypt sample has been improved
  • Improved compatibility with various antivirus filter drivers
  • Problems with dynamic disk monitoring has been fixed
  • A problem with reading and writing of the data in pre-create callbacks has been fixed

New in CallbackFilter 2.0.23 (Feb 8, 2010)

  • Various stability fixes

New in CallbackFilter 2.0.22 (Feb 8, 2010)

  • [VCL] Added packages and precompiled units for Delphi 2010
  • Improved resource utilization in kernel-mode driver
  • Improved Encrypt sample operations
  • Fixed BSOD which could happen when handling close callback on FAT file system
  • Fixed the issue in user mode API when callbacks sometimes didn't reach the handlers.
  • [VCL] Installation was missing VCL\Sources\Obj folder

New in CallbackFilter 2.0.21 (Feb 8, 2010)

  • Fixed a memory leak

New in CallbackFilter 2.0.20 (Feb 8, 2010)

  • Fixed various minor bugs reported by the users for version 2.0.19.

New in CallbackFilter 2.0.19 (Feb 8, 2010)

  • Fixes several situations which potentially could cause deadlocks

New in CallbackFilter 2.0.18 (Feb 8, 2010)

  • Added possibility to create multiple filters within the same or different applications
  • Added function to set on-boot rules, which can be used to block access to certain files or directories without controlling application
  • Added Post-event callbacks for CanFileBeDeleted and RenamOrMove operations
  • Added CreateDisposition parameter to certain callbacks
  • Added compatibility with Windows 2000 SP4

New in CallbackFilter 1.1.16 (Feb 8, 2010)

  • Fixed various minor bugs reported by the users for version 1.1.15.

New in CallbackFilter 1.1.15 (Feb 8, 2010)

  • Added possibility to track operations performed with the mounted network disks.

New in CallbackFilter 1.0.13 (Feb 8, 2010)

  • In some cases unloading the active driver on Vista could cause BSOD. Fixed.

New in CallbackFilter 1.0.12 (Feb 8, 2010)

  • Some notification callbacks were called even when the operation failed. Fixed.

New in CallbackFilter 1.0.11 (Feb 8, 2010)

  • It was not possible to activate the filter from the limited user account. Fixed.

New in CallbackFilter 1.0.10 (Feb 8, 2010)

  • Fixed various minor issues reported by the users

New in CallbackFilter 0.2.8 (Feb 8, 2010)

  • The last build before release
  • Fixed various bugs reported by the users

New in CallbackFilter 0.2.7 (Feb 8, 2010)

  • Added FileMon sample
  • Fixed various bugs reported by the users

New in CallbackFilter 0.1.6 (Feb 8, 2010)

  • Some notification callbacks were not called. Fixed.

New in CallbackFilter 0.1.5 (Feb 8, 2010)

  • Added a workaround for the problem of 64-bit driver not installing on Vista due to the bug in Vista
  • Fixed various bugs reported by the users

New in CallbackFilter 0.1.4 (Feb 8, 2010)

  • Added new callbacks: OnEnumerateDirectory*, OnCloseEnumeration, OnCloseFile*
  • * OnCreateFile* callbacks have been split to OnCreateFile* and OnOpenFile*
  • Lots of minor issues were fixed

New in CallbackFilter 0.0.3 (Feb 8, 2010)

  • [VCL] Fixed some issues in VCL API