УЧЕБНИК ПО АВТОУСТАНОВКЕ WINDOWS



5.Выполнение INF-файла через Rundll32.exe


INF-файл можно выполнить путем вызова из коммандной строки через системную библиотеку Rundll32.exe (также в Win98 Rundll.exe). Кроме того, Rundll32 можно вызывать прямо из INF-файла, используя RunPreSetupCommands и RunPostSetupCommands (например, вызвать секцию из другого или текущего INF-файла).

  • Вызов через интерпретатор Setupx.dll (setupapi.dll)
  • Синтаксис:

    RunDll32.exe setupx.dll, InstallHinfSection <section> <reboot-mode> <inf-name>

    RunDll32.exe setupapi.dll, InstallHinfSection <section> <reboot-mode> <inf-name>

    1. <section> - Исполняемая секция

    2. <reboot-mode> - Флаг перезагрузки

    3. <inf-name> - имя и путь к inf- файлу

    После такого вызова в INF-файле setupx.dll повторно ее вызывать нельзя, так как это может привести к перезагрузке или другим неприятным последствиям. Для многократных вызовов из файла интерпретатора лучше использовать RunOnce (см.ниже).

    Имя исполняемой секции: если секция с таким именем не будет найдена, то ничего не будет "выполняться", и сообщений об ошибках тоже не будет.

    Флаги перезагрузки: 

    Интерпретатор понимает следующие значения этого параметра:

    NeverReboot                  0 или 128 - не перезагружать компьютер.

    AlwaysSilentReboot      1 или 129 - обязательно (и без вопросов) перезагружать компьютер.

    AlwaysPromptReboot   2 или 130 - спросить у пользователя, перезагружать компьютер или нет.

    SilentReboot                   3 или 131 - определить, надо или нет перезагружать компьютер. Если оказалось, что перезагружать надо, то выполнить перезгрузку (без вопросов).

    PromptReboot                4 или 132 - определить, надо или нет перезагружать компьютер. Если оказалось, что перезагружать надо, то спросить у пользователя, перезагружать компьютер или нет.




    Содержание  Назад  Вперед