Error codes

CBFS Storage API returns error codes listed in Error Codes topic.

Error handling and reporting in callbacks

If your application needs to report some error when processing the callback, it should throw ESolFSError exception (SolFSError in .NET) exception. The application must pass the system error code with the exception by passing the error code as a parameter to ESolFSError constructor. CBFS Storage API will catch ESolFSError exception and extract the error code. The error code will be reported to the operating system.

OS edition for Windows:
Note that the error code reported by the callback is translated by CBFS Storage API to "NT Native" error code by the driver, which then passes this code to the OS. The OS performs opposite conversion of the error code to Win32 error code (the algorithm of this conversion is unknown and out of developers control). Due to lack of one-to-one mapping between NT Native error codes and Win32 error codes some codes can be converted incorrectly.

If some exception occurs when the callback is executed, the application must catch this exception and throw an instance of ESolFSError instead. If you don't catch some exception in your code, the API will catch it for you. But in this case it will report "Internal error" error to the OS, and this doesn't look well for the OS and for the user.

Error handling when methods are called

Methods of SolFSStorage class either return an error code or throw an exception (this depends on API used and details of function implementation). To handle exceptions you need to wrap your calls with try/catch (try / except) and handle any exception that is reported.

Extended logging

OS edition for Windows:
Several methods of SolFSStorage class (namely Install(), CreateStorage() and MountMedia() methods and Install function of the installer DLL) write extended information about the reasons of the reported error to Windows event log. User-mode part of CBFS Storage writes records to "Windows events \ Applications" folder of Windows event log. Kernel-mode part of CBFS Storage writes records to "Windows events \ System" folder of Windows event log.