If your application needs to report some error when processing the callback, it should throw ECBFSRegistryError exception.
The application must pass the error code with the exception by passing the error code as a parameter to ECBFSRegistryError 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 Registry API will catch ECBFSRegistryError 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 Registry API will catch it for you and the original request will be passed further to the underlying file system..
Several methods of CBFSRegistry 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 Registry writes records to "Windows events \ Applications" folder of Windows event log. The kernel-mode part of CBFS Registry writes records to "Windows events \ System" folder of Windows event log.
The information written to the event log has meaning for CBFS Registry developers, not for the users. So if you or your customers have problems with installing CBFS Registry drivers, please, export the event log records, related to CBFS Registry, 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".