If your application needs to report some error when processing the callback, it should throw ECBFSProcessError exception.
The application must pass the error code with the exception by passing the error code as a parameter to ECBFSProcessError constructor.
Use the error codes, defined by Win32 API, when throwing the exception. These error codes are listed in WinError.h header file in Windows Platform SDK. CBFS Process API will catch ECBFSProcessError exception and extract the error code. The error code will be reported to the operating system. The original request will not be passed further to the registry.
If some exception occurs when the callback is executed and your code doesn't handle this exception in a graceful manner, CBFS Process API will catch it for you and the original request will be passed further to the underlying file system..
Several methods of CBFSProcess class (namely Install() method and Install function of the installer DLL) write extended information about the reasons of the reported error to Windows event log. The user-mode part of CBFS Process writes records to "Windows events \ Applications" folder of Windows event log. The kernel-mode part of CBFS Process writes records to "Windows events \ System" folder of Windows event log.
The information written to the event log has meaning for CBFS Process developers, not for the users. So if you or your customers have problems with installing CBFS Process drivers, please, export the event log records, related to CBFS Process, in native format, and send us the resulting file for analysis.
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\CallbackTechnologies\EventLog" and reboot the system. To disable logging, delete the created "Eanbled" value from "HKEY_LOCAL_MACHINE\SOFTWARE\CallbackTechnologies\EventLog".