installHinfSectionA 函数 (setupapi.h)
[此函数可用于“要求”部分所示的操作系统。 它可能在后续版本中变更或不可用。 不应再使用 SetupAPI 来安装应用程序。 请改用 Windows Installer 开发应用程序安装程序。 SetupAPI 继续用于安装设备驱动程序。]
InstallHinfSection 是由 Setupapi.dll 导出的入口点函数,可用于执行 .inf 文件的某个部分。 可以通过调用 Rundll32.exe 实用工具来调用 InstallHinfSection,如“备注”部分中所述。
InstallHinfSection 函数的原型遵循与 Rundll32.exe 一起使用的所有入口点函数的形式。
如果复制或修改了文件,则此函数的调用方必须具有写入目标目录的权限。 如果安装了任何服务,则此函数的调用方必须有权访问 服务控制管理器。
语法
void InstallHinfSectionA(
[in] HWND Window,
[in] HINSTANCE ModuleHandle,
[in] PCSTR CommandLine,
[in] INT ShowCommand
);
参数
[in] Window
父窗口句柄。 hwnd 通常为 Null。
[in] ModuleHandle
保留,应为 Null。
[in] CommandLine
指向包含命令行的缓冲区的指针。 应使用以 null 结尾的字符串。
[in] ShowCommand
保留,应为零。
返回值
无
备注
请注意,存在三个导出:RunDll32) 的 InstallHinfSection (、 InstallHinfSectionA 和 InstallHinfSectionW。
若要运行指定 .inf 文件的 Install 部分,可以使用以下语法通过 Rundll32.exe 调用 InstallHinfSection 。
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection <节><模式><路径>
这会将“<节><模式><路径>”传递给 CmdLineBuffer。
或者,程序可以直接调用 InstallHinfSection、 InstallHinfSectionA 或 InstallHinfSectionW ,并将 CmdLineBuffer 参数设置为以下内容。
"<section> <mode> <path>"
其中 path 是 .inf 文件的完整路径, mode 是重新启动模式参数, section 是 .inf 文件中的任何 Install 节。 命令行上的 SETUPAPI.DLL 和 InstallHinfSection 之间的逗号分隔符是必需的。 请注意,命令行上的逗号和 SETUPAPI.DLL 或 InstallHinfSection 之间不能有任何空格。
建议将 .inf 文件的完整路径指定为 路径。
可以将 .inf 文件中的任何 Install 节指定为 节。 不允许包含空格。
对于 模式,应组合使用以下值。 必须包含 128 才能将安装的默认路径设置为 INF 的位置,否则假定使用系统提供的 INF。 添加值以指定重新启动。 请注意,仅建议使用值 128 或 132,其他值可能会导致计算机不必要地重新启动或在需要时不重新启动。
值 | 说明 |
---|---|
0 | 系统提供的 INF。 |
128 | 将安装的默认路径设置为 INF 的位置。 这是典型的设置。 |
+0 | 永远不要重新启动计算机。 |
+1 | 在所有情况下都重新启动计算机。 |
+2 | 始终询问用户是否要重新启动。 |
+3 | 必要时重新启动计算机,无需请求用户权限。 |
+4 | 如果需要重新启动计算机,请在重新启动之前请求用户权限。 |
例如,以下命令行运行 Shell.inf 文件的 DefaultInstall 部分。 如果安装程序确定需要重新启动,系统将提示用户“重新启动计算机,是/否”对话框。
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\WINDOWS\INF\SHELL。Inf
注意
setupapi.h 标头将 InstallHinfSection 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
注意
在 x86 或 amd64 以外的体系结构上使用时,或者在 S 模式下的系统上使用时,InstallHInfSection 要求 INF 文件具有一个 INF Version 节 ,该节具有 CatalogFile 指令,该指令指向包含 INF 文件的哈希的已签名目录文件,以及 INF 文件通过 INF SourceDisksFiles 部分引用的任何文件。
注意
在本机体系结构不是 x86 或 amd64 的系统上使用时,应从本机体系结构进程使用 InstallHInfSection。 InstallHInfSection 会在非本机体系结构进程中使用时阻止多种类型的系统状态更改操作。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | setupapi.h |
Library | Setupapi.lib |
DLL | Setupapi.dll |