从 INF 文件安装

从 INF 文件检索安装信息后,可以使用多个文件处理函数来安装 INF 部分中列出的文件。 低级别函数(如 SetupInstallFileSetupInstallFileEx )可安装单个文件。

还有处理压缩文件的函数。 SetupGetFileCompressionInfo 函数返回有关压缩文件的信息。 然后, SetupDecompressOrCopyFile 可以使用此信息复制该文件,并在必要时展开该文件。

高级函数(如 SetupInstallFromInfSectionSetupInstallFilesFromInfSectionSetupInstallServicesFromInfSection )处理 “安装 ”或“ 服务 ”部分中的安装操作。 其中, SetupInstallFromInfSection 功能最通用,因为它可以执行 INF 文件的“ 安装 ”部分中列出的任何类型的安装操作。 这包括“安装”部分的 AddRegDelRegUpdateInisUpdateIniField 行中列出的注册表和 INI 操作。

SetupInstallFilesFromInfSectionSetupInstallServicesFromInfSection 函数分别将“安装”或“服务”部分的操作排队到现有文件队列。 请注意,必须分别调用 SetupInstallFromInfSection 和 SetupInstallServicesFromInfSection 以排队操作和服务。 有关详细信息,请参阅 文件队列

相比之下, SetupInstallFromInfSection 函数创建并销毁其自己的内部队列。 SetupInstallFromInfSection 的常见用途是在成功复制所有文件以执行注册表和 INI 事务后调用它。

在 Windows 2000 上,DLL 文件可以通过调用 SetupInstallFromInfSection 来自行注册,该 INF 文件在其 Install 节中包含 RegisterDlls 指令。 SetupInstallFromInfSection 还可以从 64 位进程中自行注册 32 位 DLL。

在 64 位操作系统上,可以调用 SetupInstallFromInfSection 以对注册表的 32 位部分执行操作。 若要将注册表项添加到注册表的 32 位部分,请在 INF 的 AddReg 行中包含 FLG_ADDREG_32BITKEY 标志。 若要仅删除注册表的 32 位部分中的注册表项,请在 DelReg 行中包含 FLG_DELREG_32BITKEY 键。 若要仅在注册表的 32 位部分中设置或清除二进制值,请在 BitReg 行中包含FLG_BITREG_32BITKEY。

除了前面列出的函数之外,安装程序 API 还包括按文件或 INF 部分对文件安装操作进行排队的函数。 有关详细信息,请参阅 文件队列