INF UpdateInis 指令

注意

从 Windows 11 版本 22H2 开始,使用此指令的驱动程序包不再符合从硬件开发人员中心获得签名的条件。

通用驱动程序包Windows 驱动程序不能使用此指令。

UpdateInis 指令引用一个或多个已命名的部分,从而指定一个 INI 文件,以便从中读取特定部分或行,并应用到目标计算机上现有的同名 INI 文件中。 可选择在 update-ini-section 中指定对此类 INI 文件的逐行修改。

[DDInstall] | 
[DDInstall.CoInstallers] | 
[ClassInstall32] | 
[ClassInstall32.ntx86] | 
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows)
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows)

UpdateInis=update-ini-section[,update-ini-section]...

由于不需要 INI 文件,在 Windows 上安装 INF 文件时几乎从不会指定该指令。 但是,UpdateInis 指令在正式语法声明中显示的任何部分以及由 AddInterface 指令引用或在 InterfaceInstall32 部分中引用的 INF 编写器定义的部分中都有效。

UpdateInis 指令引用的每个命名部分的形式如下:

[update-ini-section]
 
ini-file,ini-section[,old-ini-entry][,new-ini-entry][,flags]
...

一个 update-ini-section 可以有任意数量的 INF 编写器确定的条目,并且每个条目都在单独一行中。

条目

ini-file
指定源介质上提供的 INI 文件的名称,并隐式地指定目标计算机上要更新的 INI 文件的名称。 此值可以用 filename 表示,也可以用 %strkey% 标记表示,该标记在 INF 文件的 Strings 部分中定义。

ini-section
指定给定 INI 文件中的部分名称。 如果指定了接下来的两个值,则该部分包含一个要更改的条目。 如果省略了 old-ini-entry 但提供了 new-ini-entry,则在读取本节时将添加新的条目。

old-ini-entry
此可选值用于指定给定 ini-section 中的条目名称,通常以下面的形式表示:

"key=value"

keyvalue 中的任何一个或两个都可以表示为 %strkey% 标记,这些标记在 INF 文件的 Strings 部分中定义。 星号 (*) 可作为 keyvalue 的通配符。

new-ini-entry
此可选值指定对给定 old-ini-entry 的更改或添加新的条目。 此值的表示方法与 old-ini-entry 相同。

flags
此可选值控制对给定的 old-ini-entry 和/或 new-ini-entry 的解释。 flags 条目可以是下列数值之一:

含义
0 如果省略 flags 条目,则该值为其默认值。

如果 INI 文件中存在给定的 old-ini-entry 键,则用给定的 new-ini-entry 替换 key=value 键。 只有 INI 文件中的键才必须匹配。 每个键的相应值都会被忽略。

要无条件向目标 INI 文件添加 new-ini-entry 条目,请省略 INF update-ini 部分条目中的 old-ini-entry 值。

要无条件删除目标 INI 文件中的 old-ini-entry 条目,请省略 new-ini-entry 值。
1 如果给定的 old-ini-entry (key=value) 存在于 INI 文件中,则将其替换为目标 INI 文件中给定的 new-ini-entry 文件。 指定的 old-ini-entrykeyvalue 必须与 INI 文件中的值相匹配,才能进行替换,而不是像前面的 flags 值那样,只替换它们的键。
2 如果在目标 INI 文件中找不到为 old-ini-entry 指定的 key,则不执行任何操作。 否则,所做更改取决于在 INI 文件中为 old-ini-entrynew-ini-entry 给定键找到的匹配项,如下所示:

(1) 如果 INI 文件中存在 old-ini-entrykey,但 new-ini-entrykey 也存在,则在目标 INI 文件中用 new-ini-entry 替换 old-ini-entry,然后从该 INI 文件中删除多余的 new-ini-entry

(2) 如果在 INI 文件中存在 old-ini-entrykey 但不存在 new-ini-entry 的键,则在目标 INI 文件中用 new-ini-entry 的键替换 old-ini-entry key 的键,但保持 old-ini-entry 的值不变。
3 如果在 INI 文件中找不到为 old-ini-entry 指定的 keyvalue,则不执行任何操作。 否则,所做更改取决于在 INI 文件中为 old-ini-entrynew-ini-entry 的给定键和值找到的匹配项,如下所示:

(1) 如果 INI 文件中存在 old-ini-entrykey=value,但 new-ini-entrykey=value 也存在,则在目标 INI 文件中用 new-ini-entry 替换 old-ini-entry,然后从该 INI 文件中删除多余的 new-ini-entry

(2) 如果在 INI 文件中存在 old-ini-entrykey=value 但不存在 new-ini-entry 的键,则在目标 INI 文件中用 new-ini-entry 的键替换 old-ini-entry 的键,但保持 old-ini-entry 的值不变。

注解

给定的 update-ini-section 名称在 INF 文件中都必须是唯一的,并且必须遵循定义部分名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的常规语法规则

INF 以下列方式之一提供给定 ini-file 在分发介质上的完整路径:

  • 在 IHV/OEM 提供的 INF 文件中,使用该 INF 的 SourceDisksNamesSourceDisksFiles 部分,显式指定不在分发介质根目录(或多个目录)中的每个已命名源文件的完整路径。

  • 在系统提供的 INF 文件中,提供一个或多个附加 INF 文件,这些文件在 INF 文件 Version 部分的 LayoutFile 条目中标识。

old-ini-entrynew-ini-entry 中指定的任何 filename 都应指定包含该文件的目标目录。 update-ini-section 条目中 filename 的目标目录路径必须指定为 dirid。 有关可能的 dirid 值列表,请参阅使用 Dirids

另请参阅

AddInterface

ClassInstall32

DDInstall

DestinationDirs

Ini2Reg

InterfaceInstall32

ProfileItems

SourceDisksFiles

SourceDisksNames

字符串

UpdateIniFields

版本