Установка драйверов из установщика NSIS в x64 системе

Я хочу добавить поддержку x64 Ose к моему установщику NSIS. Одной из задачи установщика является установка драйверов. Я записал специальный плагин NSIS для этой задачи. Этот плагин использует Платформы Установки Драйвера API (DIFxAPI) для установки драйверов.

Проблема состоит в том, что этот API не работает в WOW64.

Там какой-либо путь состоит в том, чтобы создать x64 приложение установщика с NSIS? Кто-либо решил подобную проблему с NSIS?

P.S.: единственное решение, которое я вижу теперь, состоит в том, чтобы запустить другое приложение из установщика. Это будет x64 исполняемым файлом, который устанавливает драйверы. Но этот путь кажется несколько более твердым мне. Так, я интересуюсь другими решениями.

8
задан Alex Che 17 March 2010 в 18:27
поделиться

2 ответа

Я столкнулся с аналогичной проблемой и думаю, что единственное решение на данный момент - запустить что-то еще (64-битное) через CreateProcess.

Похоже, что в этом документе есть решение, использующее DPInst ( http://www.microsoft.com/whdc/driver/install/32-64bit_install.mspx ), хотя я сам еще не пробовал.

Добавлю все, что найду.

Дополнительно: Теперь он заработал, сводится к

  1. Загрузить комплект драйверов Windows версии 7.1.0
  2. Смонтировать ISO и установить полную среду разработки-> Инструменты на C : \
  3. Скопируйте C: \ WinDDK \ 7600.16385.1 \ redist \ DIFx / dpinst / EngMui / amd64 / dpinst.exe в myApp / drivers / dpinst64.exe
  4. Скопируйте C: \ WinDDK \ 7600.16385.1 \ redist \ DIFx / dpinst / EngMui / x86 / dpinst.exe в myApp / drivers / dpinst32.exe
  5. Скопируйте пакет драйвера (файл inf и т. д.) в myApp / drivers
  6. В начало myApp.nsi add ! include "x64.nsh"
  7. И где-нибудь в разделе установки в 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}
12
ответ дан 5 December 2019 в 09:25
поделиться

Собственная x64-версия NSIS в лучшем случае находится на стадии планирования, поэтому вам придется создать что-то особенное, либо новое вспомогательное приложение, либо 64-битную версию rundll32 + какой-то вспомогательный файл DLL.

2
ответ дан 5 December 2019 в 09:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: