INF UpdateInis 指令
UpdateInis 指令引用一个或多个命名节,指定要从中读取特定节或行并将其应用于目标计算机上同名的现有 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 文件缺少 INI 文件,因此在 Windows 上安装的 INF 文件中几乎从未指定过此指令。 但是,UpdateInis 指令在正式语法语句中显示的任一节以及 AddInterface 指令引用的 INF 编写器定义节中有效,或在 InterfaceInstall32 节中引用。
UpdateInis 指令引用的每个命名节具有以下形式:
[update-ini-section]
ini-file,ini-section[,old-ini-entry][,new-ini-entry][,flags]
...
update-ini-section 可以具有任何 INF 编写器确定的条目数,每个条目位于单独的行中。
条目
ini-file
指定要在目标计算机上更新的 INI 文件的名称,并隐式指定在源媒体上提供的 INI 文件的名称。 此值可以表示为文件名,也可以表示为 INF 文件的 Strings 节中定义的 %strkey% 标记。
ini-section
指定给定 INI 文件中节的名称。 如果指定了接下来的两个值,则本部分包含要更改的条目。 如果省略了 old-ini 条目,但提供了 new-ini-entry,则将添加新条目,因为读取此部分。
old-ini-entry
此可选值指定给定 ini 节中条目的名称,通常以以下形式表示:
"key=value"
键和值的任一或两者都可以表示为 INF 文件的 Strings 节中定义的 %strkey% 标记。 星号 \ 可以指定为键或值的通配符。
new-ini-entry
此可选值指定对给定 旧条目 的更改或添加新项。 此值可以采用与 old-ini-entry 相同的方式表示。
flags
此可选值控制给定的 old-ini-entry 和/或 new-ini-entry 的解释。 标志条目可以是以下数值之一:
值 | 含义 |
---|---|
0 | 如果省略标志项,则为默认值。 如果 INI 文件中存在给定 的 old-ini 条目 键,请将该 key=value 替换为给定 的 new-ini-entry。 只有 INI 文件中的密钥才能匹配。 将忽略每个此类键的相应值。 若要无条件地将 new-ini 条目添加到目标 INI 文件,请省略 INF 的 update-ini 节中的条目中的 old-ini 条目值。 若要从目标 INI 文件中无条件删除 old-ini 条目 ,请省略 new-ini-entry 值。 |
1 | 如果 INI 文件中存在给定 的 old-ini-entry (key=value),请将其替换在具有给定 new-ini-entry 的目标 INI 文件中。 指定的 old-ini 条目的键和值必须与 INI 文件中的键和值匹配,以便进行此类替换,而不仅仅是其键,如前面的标志值一样。 |
2 | 如果在目标 INI 文件中找不到为 old-ini 条目指定的键,则不执行任何操作。 否则,所做的更改取决于 INI 文件中为旧 ini 条目和 new-ini 条目的给定密钥找到的匹配项,如下所示: (1) 如果 old-ini 条目的键存在于 INI 文件中,但新 ini 条目的键也是如此,请将 old-ini 条目替换为目标 INI 文件中的 new-ini-entry,然后从该 INI 文件中删除多余的 new-ini 条目。 (2) 如果 old-ini 条目的键存在于 INI 文件中,但 new-ini-entry 的键不存在,请将 old-ini-entry 键替换为目标 INI 文件中新 ini 项的键,但保留 old-ini 条目的值不变。 |
3 | 如果在 INI 文件中找不到为 old-ini 条目指定的键和值,则不执行任何操作。 否则,所做的更改取决于 INI 文件中针对旧 ini 条目和 new-ini 条目的给定键和值找到的匹配项,如下所示: (1) 如果 inI 文件中存在 old-ini-entry 的 key=value,但 new-ini-entry 的 key=value 也是如此,请将 old-ini-entry 替换为目标 INI 文件中的 new-ini-entry,然后从该 INI 文件中删除多余的 new-ini-entry。 (2) 如果 old-ini 条目的键=值存在于 INI 文件中,但 new-ini-entry 不存在,请将 old-ini-entry 替换为目标 INI 文件中的 new-ini-entry,但保留 old-ini-entry 的值不变。 |
注解
给定 update-ini-section 名称在 INF 文件中必须唯一,并且必须遵循定义节名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的常规语法规则。
INF 通过以下方式之一在分发媒体上提供给定 ini 文件 的完整路径:
在 IHV/OEM 提供的 INF 文件中,通过使用此 INF 的 SourceDisksNames 和 SourceDisksFiles 部分显式指定分发媒体上根目录(或目录)中每个命名源文件的完整路径。
在系统提供的 INF 文件中,通过提供一个或多个附加的 INF 文件,在 INF 文件的“版本”部分中的 LayoutFile 条目中标识。
在 old-ini-entry 或 new-ini-entry 中指定的任何文件名都应指定包含该文件的目标目录。 必须将 update-ini-section 条目中文件名的目标目录路径指定为 dirid。 有关可能的 dirid 值的列表,请参阅 “使用 Dirids”。