Control over registry operations in Windows and .NET applications

CallbackRegistry.InstallDriver method


Pascal    C++ (Lib)    C++ (VCL)    C++ (.NET)    C#    VB.NET   

CallbackRegistry     See also    


Installs the driver into the system.


    class procedure InstallDriver(DriverFileName : TCBString; ProductName : AnsiString; var RebootNeeded : boolean);
    type TCBString = {$ifdef UNICODE}UnicodeString{$else}WideString{$endif};

[C++ (Lib)]
    static void InstallDriver(LPCWSTR DriverFileName, LPCSTR ProductName, LPBOOL RebootNeeded);

[C++ (VCL)]
    static void __fastcall InstallDriver(__classid(TCallbackRegistry), WideString DriverFileName, AnsiString ProductName, bool &RebootNeeded);

[C++ (.NET)]
    static void InstallDriver(String^ DriverFileName, String^ ProductName, bool% RebootNeeded);

    static void InstallDriver(string DriverFileName, string ProductName, ref bool RebootNeeded)

    Shared Sub InstallDriver(ByVal DriverFileName As String, ByVal ProductName As String, ByRef RebootNeeded As Boolean)


  • DriverFileName - the fully qualified name of the driver (cbreg.sys)
  • ProductName - the ProductName string that identifies installation of the driver by your application
  • RebootNeeded - on return this parameter specifies if system restart is necessary for driver installation to be successful


Use this function to install the driver to the system. Once installed, the driver is loaded using user-mode API. ProductName is used to distinguish between installations of the driver made by different applications and to prevent the situation when the driver is installed by two applications and further deinstallation of one of them removes the driver.

Read more about installing and uninstalling the drivers.

Install the correct drivers:
On 64-bit systems you must install 64-bit drivers. 32-bit drivers won't work there. If your application is 32-bit, you need to determine what driver set to install. To do this you can use one of the listed methods:

  • Use IsWow64Process() WinAPI function. Note, that this function appeared only in Windows XP so you need to use GetProcAddress() WinAPI function to dynamically obtain the function pointer.
  • Check existence of %WINDIR%\SysWOW64 folder
  • Check ProgramW6432 environment variable

See also

GetDriverStatus     UninstallDriver

Back to top