Функция InstallHinfSectionA (setupapi.h)
[Эта функция доступна для использования в операционных системах, указанных в разделе "Требования". Он может быть изменен или недоступен в последующих версиях. SetupAPI больше не следует использовать для установки приложений. Вместо этого используйте установщик Windows для разработки установщиков приложений. SetupAPI по-прежнему используется для установки драйверов устройств.]
InstallHinfSection — это функция точки входа, экспортируемая Setupapi.dll, которую можно использовать для выполнения раздела INF-файла.
Заметка
Для многих сценариев рекомендуется использовать примитивный пакет драйвера вместо использования INF-файла с InstallHinfSection
installHinfSection можно вызвать, вызвав служебную программу Rundll32.exe, как описано в разделе "Примечания". Прототип функции InstallHinfSection следует форме всех функций точки входа, используемых с Rundll32.exe.
Если файл копируется или изменяется, вызывающий эту функцию, имеет права на запись в целевой каталог. Если установлены службы, вызывающий эту функцию, требуется доступ к Service Control Manager.
Синтаксис
void InstallHinfSectionA(
[in] HWND Window,
[in] HINSTANCE ModuleHandle,
[in] PCSTR CommandLine,
[in] INT ShowCommand
);
Параметры
[in] Window
Дескриптор родительского окна. Как правило,
[in] ModuleHandle
Зарезервировано и должно иметь значение NULL.
[in] CommandLine
Указатель на буфер, содержащий командную строку. Следует использовать строку, завершаемую значением NULL.
[in] ShowCommand
Зарезервировано и должно быть равно нулю.
Возвращаемое значение
Никакой
Замечания
Обратите внимание, что существует три экспорта: InstallHinfSection (для RunDll32), InstallHinfSectionAи InstallHinfSectionW.
Чтобы запустить раздел install указанного INF-файла, можно вызвать InstallHinfSection с помощью Rundll32.exe с помощью следующего синтаксиса.
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection <section> <mode> <path>
В этом разделе
Кроме того, программа может вызывать InstallHinfSection, InstallHinfSectionAили InstallHinfSectionW напрямую, установив параметр CmdLineBuffer следующим образом.
"<section> <mode> <path>"
Где пути
Рекомендуется указать полный путь к INF-файлу в виде пути.
Вы можете указать любой раздел Установить в INF-файле как раздел. Пробелы не допускаются.
Следует использовать сочетание следующих значений для режима. Необходимо включить 128, чтобы задать путь по умолчанию установки к расположению INF, в противном случае предполагается, что inf предоставляется системой. Добавьте значения для указания перезагрузки. Обратите внимание, что рекомендуется использовать только значения 128 или 132, другие значения могут привести к перезагрузке компьютера без необходимости или не перезагрузиться при необходимости.
Ценность | Описание |
---|---|
0 | Предоставленная система INF. |
128 | Задайте путь по умолчанию для установки в расположение INF. Это типичный параметр. |
+0 | Никогда не перезагружайте компьютер. |
+1 | Перезагрузите компьютер во всех случаях. |
+2 | Всегда спрашивайте пользователей, хотите ли они перезагрузиться. |
+3 | При необходимости перезагрузите компьютер, не запрашивая разрешения пользователя. |
+4 | Если требуется перезагрузка компьютера, попросите пользователя предоставить разрешение перед перезагрузкой. |
Например, следующая командная строка запускает раздел DefaultInstall файла Shell.inf. Если программа установки определяет, что требуется перезагрузка, пользователю будет предложено открыть диалоговое окно "Перезагрузить компьютер, да или нет".
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\Example\SHELL.INF
Заметка
Заголовок setupapi.h определяет InstallHinfSection как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Осторожность
При использовании в архитектуре, отличной от x86 или amd64, или при использовании в системе в режиме S, installHInfSection требует, чтобы в INF-файле был раздел INF-версии с директивой CatalogFile, указывающей на подписанный файл каталога, содержащий хэш INF-файла и все файлы, ссылки на INF-файлы с помощью раздела INF-файла INF SourceDisksFiles.
Осторожность
При использовании в системе, собственная архитектура которой не x86 или amd64, следует использовать InstallHInfSection из собственного процесса архитектуры. InstallHInfSection блокирует многие типы операций изменения состояния системы при использовании из процесса архитектуры, отличного от машинного кода.
LogLevel
, как описано в разделе Настройка уровней ведения журнала SetupAPI. По соображениям производительности этот файл журнала следует включить только при устранении неполадок. Если файл журнала включен, его можно найти в %windir%\inf\setupapi.app.log
.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | setupapi.h |
библиотеки |
Setupapi.lib |
DLL | Setupapi.dll |