How can I install a driver using InnoSetup? How can I install a driver using InnoSetup? windows windows

How can I install a driver using InnoSetup?


See InstallHinfSection on MSDN. The documentation also mentions how to invoke an installation by calling 'Rundll32.exe'. Probably you'll end up with something like this:

[Files]..Source: "driver\my_x86driver.inf"; DestDir: {app}\driver;Source: "driver\my_x86driver.sys"; DestDir: {app}\driver;[Run]..Filename: {sys}\rundll32.exe; Parameters: "setupapi,InstallHinfSection DefaultInstall 128 {app}\driver\my_x86driver.inf"; WorkingDir: {app}\driver; Flags: 32bit;


Note that you might need to run the setup in 64bit mode in 64bit systems to be able to install the driver:

[Setup]..ArchitecturesInstallIn64BitMode=x64 

Also you can put checks as to run the version of .inf file depending on machine architecture (e.g. Check: Is64BitInstallMode).


This is a better answer: Inno setup: install drivers with rundll32 or dpinst?

Using InstallHinfSection on Windows 7 and beyond seems to be either broken or fraught with difficulty. Making it work from a batch file is difficult, making it work from innosetup is even more difficult. DPINST seems preferable, and is simpler.


I used dpinst like this:

 [Files]    Source: "Source\dpinst\dpinst32.exe"; DestDir: "{app}\driver"; DestName: dpinst.exe; Check: not IsWin64; Flags: ignoreversionSource: "Source\dpinst\dpinst64.exe"; DestDir: "{app}\driver"; DestName: dpinst.exe; Check: IsWin64; Flags: ignoreversion[Run]Filename: "{app}\driver\dpinst.exe"; Parameters: "/A /LM";