INF DelReg 指令

注意

如果要生成通用或 Windows 驱动程序包,则此指令无效。 请参阅在 Windows 驱动程序中使用通用 INF 文件和入门。

DelReg 指令引用一个或多个 INF 编写器定义的部分,这些节描述要从注册表中删除的键和/或值条目。

[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)
 
DelReg=del-registry-section[,del-registry-section]...

DelReg 指令引用的每个 del-registry-section 具有以下形式:

[del-registry-section]
reg-root-string,subkey[,value-entry-name][,flags][,value]
reg-root-string,subkey[,value-entry-name][,flags][,value]
...

del-registry-section 可以有任意数量的条目,每个条目在单独的行上。

reg-root-string
标识此条目中提供的其他值的注册表树的根。 值可以是下列任一值:

HKCR
HKEY_CLASSES_ROOT的缩写。

HKCU
HKEY_CURRENT_USER的缩写。

HKLM
HKEY_LOCAL_MACHINE的缩写。

香港
HKEY_USERS的缩写。

HKR
相对根,其中使用此缩写指定的键相对于与此 DelReg 指令出现的 INF 部分关联的注册表项,如下表所示。

包含 AddReg 指令的 INF 节 HKR 引用的注册表项
INF DDInstall 设备 的软件密钥
INF DDInstall。HW 部分 设备 的硬件密钥
INF DDInstall。“服务 ”部分 服务密钥

注意

HKR 不能在从 INF DefaultInstall 节引用的 del-registry-section 中使用。

有关存储在 HKEY_LOCAL_MACHINE 根目录下的驱动程序信息的详细信息,请参阅 设备和驱动程序的注册表树和密钥

subkey
此可选值以在 INF 的 Strings 节中定义的 %strkey% 标记形式或给定 reg-root (key1\key2\key3...) 下的注册表路径形式,指定以下项之一:

  • 要在给定注册表路径末尾的注册表中删除的子项

  • 要从中删除给定 value-entry-name 的现有子项

value-entry-name
此值标识要从给定子项中删除的命名值条目。 如果要从注册表中删除子项本身,应省略此值及其前面的逗号。

标志 (Windows XP 及更高版本的 Windows.)
此可选的十六进制值表示为系统定义的低字和高字标志值的 ORed 位掩码,定义值条目的数据类型,或控制删除注册表操作。 如果未指定 标志 ,则将删除 value-entry-name ((如果指定) 或 子项 )。

其中每个标志的位掩码值如下所示:

0x00002000 (FLG_DELREG_KEYONLY_COMMON)
删除整个子项。

0x00004000 (FLG_DELREG_32BITKEY)
在 32 位注册表中执行指定的更改。 如果未指定,则对本机注册表进行更改。

0x00018002 (FLG_DELREG_MULTI_SZ_DELSTRING)
在多字符串注册表项中,删除与 value 指定的字符串值匹配的所有字符串。 忽略大小写。

value (Windows XP 及更高版本的 Windows.)
如果 标志 指示需要注册表值,则指定注册表值。

注解

可以在上述正式语法语句所示的任何部分下指定 DelReg 指令。 还可以在以下任一 INF 编写器定义的部分下指定此指令:

通常,INF 绝不应尝试删除现有子项中的子项或值条目,这些子项是由系统组件或其他设备的 INF 文件设置的。 del-registry-section 的目的是使用同一提供程序提供的新 INF 文件清理以前安装的过时注册表信息。

每个 del-registry-section 名称对于 INF 文件必须是唯一的,但它可由同一 INF 的其他部分中的 DelReg 指令引用。 每个节名称必须遵循定义节名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的一般语法规则

对于 Windows XP 之前的操作系统版本,删除密钥的唯一方法是指定以下内容:

reg-root-string, subkey

对于 Windows XP 和更高版本的 Windows,还允许以下 (指定 32 位注册表) :

reg-root-string, subkey,,0x4000

示例

此示例演示系统提供的 COM/LPT 端口类安装程序的 INF 如何从注册表中删除有关 COM 端口的过时 NT 特定注册表信息。

[ComPort.NT]
AddReg=ComPort.NT.AddReg
 ... ; more directives omitted here

[ComPort.NT.HW]
DelReg=ComPort.NT.HW.DelReg

[Comport.NT.AddReg]
HKR,,EnumPropPages32,,"MSPorts.dll,SerialPortPropPageProvider"

[ComPort.NT.HW.DelReg]
HKR,,UpperFilters

另请参阅

AddReg

AddInterface

AddService

ClassInstall32

DDInstall

DDInstall。硬件

DDInstall。服务

InterfaceInstall32

字符串