Callback Technologies Knowledge Base

CBFS Connect Articles:

Getting Started with CBFS Connect

The article shows how to get started with CBFS Connect step by step.

How do I enable Windows Search on a CBFS Connect drive?

Enabling Windows Search on CBFS Connect drives.

What does "Could not load file or assembly 'CBFSConnectNet****.dll' or one of its dependencies" mean?

Information on the following error: "Could not load file or assembly 'CBFSConnectNet****.dll' or one of its dependencies."

How can I make a file read-only to a certain process?

First you need to set the CallAlOpenCloseCallbacks property to true. Next, you need to inspect the initiator of the request (using the GetOriginator*() methods) …

How do I create a disk for only one user (session)?

How to create a disk for only one user (session)

How do I show different files to different users on the same filesystem?

Showing different files to different users on the same filesystem

How can I make my disk support paths longer than 260 characters?

Making disk support paths longer than 260 characters

What is this strange file name with a semicolon inside?

When you handle OnCreateFile and / or OnOpenFile request, you can get the file name with a semicolon (":") in it. This means that the request is made to create a…

What happens if the filesystem fails to delete the actual file from the backend data storage?

CBFS Connect is not different from other file systems in this aspect. Information about the file's existence will be removed from the Windows cache, but on the n…

If we set filesystem name to NTFS, what effect will this change have?

Setting filesystem name to NTFS and the changes effect

When some file request is handled by the callback/event handler (eg. OnReadFile), are other requests for the same file waiting or callback/event handlers can be called for those requests at the same time?

By default, all requests for one file are handled sequentially (i.e. the next callback / event handler is called only after the previous one has been finished). …

Can we have a WHQL-certified version of the driver?

Unfortunately, this is not possible due to technical reasons. WHQL certification involves a large number of tests conducted by automated software. This software …

How do I collect the log of file operations on the drive (for debugging)?

How to collect the log of file operations on the drive (for debugging)

I have deleted the file in the back-end storage exposed by CBFS Connect. How do I notify the system about this?

Suppose you are exposing a custom file system using CBFS Connect and you (or another application) have deleted a file named "/path/to/filename.ext" from this bac…

Where's the CreationDisposition parameter and how do I distinguish between the Open and Create operations?

Where to find the CreationDisposition parameter and how to distinguish between the Open and Create operations?

What is the sequence of callbacks called when Explorer opens the directory?

What is the sequence of callbacks called when Explorer opens the directory

I created a local mounting point with the CBFS_SYMLINK_LOCAL | CBFS_SYMLINK_NETWORK combination of flags. Why is this disk visible via Network Neighborhood?

When a mounting point is created with CBFS_SYMLINK_NETWORK, it consists of two parts an optional disk name (either a drive letter, e.g., Z:, or a mounting point)…

Can I clear the metadata cache?

You can clear the cache for a separate file/directory by using the NotifyDirectoryChange method. The cache for the disk as a whole can be cleared by setting the …

Can I delete backend data in the OnCanFileBeDeleted callback/event handler?

OnCanFileBeDeleted can't be used to delete the data because Windows can use this callback just to check whether the file can be deleted (not for the actual delet…

Why does throwing an exception from the OnDeleteFile callback/event handler not prevent file deletion?

This is the correct behavior. Windows can delete a file or directory in two ways: The first way: The file is opened. The "Delete on close" flag is set for the fi…

Troubleshooting: after the network mounting point with a share is created, Explorer can stop showing any SMB shares.

Troubleshooting: After the network mounting point with a share is created, Explorer can stop showing any SMB shares.

Troubleshooting: Windows Search records an error message to the system log, when working on an "NTFS" disk created with CBFS Connect.

When the CBFS Connect name is set to NTFS, Windows starts to use some features specific to NTFS and not supported by CBFS Connect at the moment. In particular, t…

How do I get rid of the Windows warning box when installing drivers?

Getting rid of the Windows warning box when installing drivers

When SerializeCallback is false, do file operations for a file go into one thread?

All file operations for one file go into one thread (i.e., are serialized), but this thread is not always the same. The thread is picked from the worker thread p…

When I set "SectorSize" to 4096 and "StorageType" to "stDiskPnP", some applications can't work with the disk. Why?

In PnP mode the OS builds a stack of drivers on top of the CBFS Connect virtual disk driver (the one that is presented in PnP mode). This driver reports the sect…

Why does the system become slow if I perform lengthy operations in OnOpenFile, OnCreateFile, or OnCloseFile?

CBFS Connect processes requests in several threads parallely. This lets you achieve optimal performance. However, the creation and closing of the files requires …

Why can't I share the folder of a created virtual drive?

The folder can be shared when the mounting point added is a global mounting point (see the description of the parameters of the AddMountingPoint method). You can…

Why doesn't GetOriginatorProcessName return some process names?

the If GetOriginatorProcessName() method returns false, check the error code using the GetLastError() function from the Windows API. If the buffer is too small, …

Why is mounting point I added not visible in Explorer?

Explorer will update information about existing mount points only after it receives the WM_DEVICECHANGE message. This message is broadcast automatically by CBFS …

Why is a timeout necessary?

The timeout mechanism was implemented to avoid possible deadlocks in the system. These deadlocks can occur because of possible complications in the interaction b…

Is there a problem if timeout is disabled?

Usually there isn't. But, there can be some unexpected long waits in the callbacks you implemented and some influence from third-party system components. For exa…

I get "The 'Virtual Storage Mount Notification' add-on from 'EldoS Corporation' is ready for use." message in Internet Explorer 9. What is that?

Getting the Virtual Storage Mount Notification add-on message in Internet Explorer

The Initialize method throws a strange exception saying that the driver is not found. What's the reason?

The exact exception message is the following: "A volume has been accessed for which a file system driver is required that has not yet been loaded". Please check …

Do we need to install CBFS Connect after each restart of the computer?

The installation is performed once and this is usually done in the application installer, not in the application itself.…

Why can't I create a directory or file whose name ends with a dot (".")?

This is the way the Windows shell works, and the behavior is consistent with other file systems. With FAR manager or with Windows API functions, you can create a…

Windows 10 now supports long file names. Can we?

CBFS Connect has supported long file names since version 3. The problem with Windows is not that it doesn't support long file names before that patch (it actuall…

Why does Explorer read files when I just browse the directory?

The reason why Explorer only reads files when browsing the directory

Why is it so slow to copy from a CBFS Connect drive as opposed to a regular disk?

Why copying is slow when doing it to/from CBFS Connect drive in opposite to regular disk

I need to expose data stored in a remote location. What samples do I start with?

Most tasks can be accomplished by using the Mapper sample as a template. The SFTPDisk sample (available for VCL and .NET APIs) is a more sophisticated sample tha…

Can we have asynchronous versions of callbacks / events?

Can we have asynchronous versions of callbacks/events?

How do I make a Recycle Bin on my virtual disk?

How to have a Recycle Bin on a virtual disk.

Minifilter and legacy filter usage in Callback File System and CBFS Connect

Information about use of mini filters and legacy filters