Я хочу добавить поддержку x64 Ose к моему установщику NSIS. Одной из задачи установщика является установка драйверов. Я записал специальный плагин NSIS для этой задачи. Этот плагин использует Платформы Установки Драйвера API (DIFxAPI) для установки драйверов.
Проблема состоит в том, что этот API не работает в WOW64.
Там какой-либо путь состоит в том, чтобы создать x64 приложение установщика с NSIS? Кто-либо решил подобную проблему с NSIS?
P.S.: единственное решение, которое я вижу теперь, состоит в том, чтобы запустить другое приложение из установщика. Это будет x64 исполняемым файлом, который устанавливает драйверы. Но этот путь кажется несколько более твердым мне. Так, я интересуюсь другими решениями.
Я столкнулся с аналогичной проблемой и думаю, что единственное решение на данный момент - запустить что-то еще (64-битное) через CreateProcess.
Похоже, что в этом документе есть решение, использующее DPInst ( http://www.microsoft.com/whdc/driver/install/32-64bit_install.mspx ), хотя я сам еще не пробовал.
Добавлю все, что найду.
Дополнительно: Теперь он заработал, сводится к
C : \
C: \ WinDDK \ 7600.16385.1 \ redist \ DIFx / dpinst / EngMui / amd64 / dpinst.exe
в myApp / drivers / dpinst64.exe
C: \ WinDDK \ 7600.16385.1 \ redist \ DIFx / dpinst / EngMui / x86 / dpinst.exe
в myApp / drivers / dpinst32.exe
myApp / drivers
myApp.nsi
add ! include "x64.nsh"
myApp.nsi
добавить: ${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}
Собственная x64-версия NSIS в лучшем случае находится на стадии планирования, поэтому вам придется создать что-то особенное, либо новое вспомогательное приложение, либо 64-битную версию rundll32 + какой-то вспомогательный файл DLL.