I want to add support for x64 OSes to my NSIS installer. One of the installer's task is drivers installation. I've written a special NSIS plugin for this task. This plugin uses Driver Install Frameworks API (DIFxAPI) to install drivers.
The problem is that this API does not work in WOW64.
Is there any way to create x64 installer application with NSIS? Has anybody solved similar problem with NSIS?
P.S.: The only solution I can see now is to run another application from the installer. This will be x64 executable that installs drivers. But this way seems somewhat harder to me. So, I'm interested in other solutions.
I am encountering a similar problem and I think that the only solution at the moment is to run something else (64bit) via CreateProcess.
This doc appears to have a solution using DPInst (http://www.microsoft.com/whdc/driver/install/32-64bit_install.mspx) though I have not tried it myself yet.
Will add anything else I find.
Additional: Have now got it to work, boils down to
C:\
C:\WinDDK\7600.16385.1\redist\DIFx/dpinst/EngMui/amd64/dpinst.exe
to myApp/drivers/dpinst64.exe
C:\WinDDK\7600.16385.1\redist\DIFx/dpinst/EngMui/x86/dpinst.exe
to myApp/drivers/dpinst32.exe
myApp/drivers
myApp.nsi
add !include "x64.nsh"
myApp.nsi
add:${If} ${RunningX64}
ExecWait '"$INSTDIR\drivers\dpinst64.exe" /c /q /sa /sw /PATH
"$INSTDIR\drivers"'
${Else}
ExecWait '"$INSTDIR\drivers\dpinst32.exe" /c /q /sa /sw /PATH
"$INSTDIR\drivers"'
${EndIf}