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 文件不需要 INI 文件,因此几乎从未在 INF 文件中指定用于在 Windows 上安装此指令。 但是, 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 文件的名称。 此值可以表示为在 INF 文件的 Strings 节中定义的文件名或 %strkey% 标记。

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

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

"key=value"

值的任一或两者都可以表示为在 INF 文件的字符串部分中定义的 %strkey% 标记。 星号 (*) 可以指定为值的卡。

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

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

含义
0 如果省略 标志 项,则此值为默认值。

如果 INI 文件中存在给定的 old-ini-entry 键,请将该 key=value 替换为给定的 new-ini-entry。 只有 INI 文件中的键必须匹配。 忽略每个此类键的相应值。

若要无条件地将 new-ini-entry 添加到目标 INI 文件,请省略 INF update-ini 节中条目中的 old-ini-entry 值。

若要无条件地从目标 INI 文件中删除 old-ini-entry ,请省略 new-ini-entry 值。
1 如果 INI 文件中存在给定的 old-ini-entry (key=value) ,请在具有给定 new-ini-entry 的目标 INI 文件中替换它。 指定 old-ini-entry和值必须匹配 INI 文件中的键和,才能进行此类替换,而不仅仅是它们的键(如前面的标志值)。
2 如果在目标 INI 文件中找不到为 old-ini-entry 指定的,则不执行任何操作。 否则,所做的更改取决于在 INI 文件中为 old-ini-entrynew-ini-entry 的给定键找到的匹配项,如下所示:

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

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

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

(2) 如果 INI 文件中存在 old-ini-entrykey=value,但 new-ini-entry 不存在,请将 old-ini-entry 替换为目标 INI 文件中的 new-ini-entry,但保留 old-ini-entry 的值不变。

注解

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

INF 通过以下方式之一在分发媒体上提供给定 ini-file 的完整路径:

  • 在 IHV/OEM 提供的 INF 文件中,通过使用此 INF 的 SourceDisksNamesSourceDisksFiles 部分显式指定不在分发媒体上 (目录或) 目录的每个命名源文件的完整路径。

  • 在系统提供的 INF 文件中,通过提供一个或多个其他 INF 文件,在 INF 文件的“版本”部分中的 LayoutFile 条目中标识。

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

另请参阅

AddInterface

ClassInstall32

DDInstall

DestinationDirs

Ini2Reg

InterfaceInstall32

ProfileItems

SourceDisksFiles

SourceDisksNames

字符串

UpdateIniFields

版本