INF BitReg 指令

注意

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

BitReg 指令引用一个或多个 INF 编写器定义的节,用于设置或清除注册表中现有REG_BINARY类型值条目中的位。 但是,此指令很少用于设备/驱动程序 INF 文件。

[DDInstall] | 
[DDInstall.HW] | 
[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)
 
BitReg=bit-registry-section[,bit-registry-section]...

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

BitReg 指令引用的每个命名节具有以下形式:

[bit-registry-section]
reg-root, [subkey], value-entry-name, [flags], byte-mask, byte-to-modify
reg-root, [subkey], value-entry-name, [flags], byte-mask, byte-to-modify
...

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

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

HKCR
HKEY_CLASSES_ROOT的缩写。

HKCU
HKEY_CURRENT_USER的缩写。

HKLM
HKEY_LOCAL_MACHINE的缩写。

香港
HKEY_USERS的缩写。

HKR
相对根 - 即,使用此缩写指定的键相对于与显示此 BitReg 指令的 INF 部分关联的注册表项,如下表所示。

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

注意

不能在从 INF DefaultInstall 节引用的位注册表节中使用 HKR

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

subkey
此可选值表示为 INF 的 Strings 节中定义的 %strkey% 标记,或者表示为给定的 reg-root (key1\key2\key3...) 下的注册表路径,指定包含要修改的值项的键。

value-entry-name
指定要修改的现有 () 子项中的现有REG_BINARY类型值项的名称。 它可以表示为“带引号的字符串”,也可以表示为 INF 的字符串部分中定义的 %strkey% 标记。

flag
此可选的十六进制值表示为系统定义的低字和高字标志值的 ORed 位掩码,指定是清除还是设置给定字节掩码中指定的位。 其默认值为零,这将清除注册表的 64 位部分中的位。

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

0x00000000 (FLG_BITREG_CLEARBITS)
清除 字节掩码指定的位。

0x00000001 (FLG_BITREG_SETBITS)
设置 字节掩码指定的位。

0x00004000 (FLG_BITREG_32BITKEY) (Windows XP 和更高版本的 Windows.)
在 32 位注册表中进行指定的更改。 如果未指定,则会对本机注册表进行更改。

byte-mask
此字节大小的掩码以十六进制表示法表示,指定要在给定 value-entry-name 的当前值中清除或设置哪些位。

byte-to-modify
此字节大小的值以十进制表示,指定要修改 的REG_BINARY类型值中的字节的从零开始的索引。

注解

每个 位注册表节 名称对于 INF 文件必须是唯一的,但它可由同一 INF 的其他部分中的 BitReg 指令引用。 INF 编写器创建的每个节名称在 INF 文件中必须是唯一的,并且必须遵循定义节名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的一般语法规则

也可以通过覆盖 INF 文件其他位置的 add-registry 节中的当前值来修改现有 REG_BINARY类型值项的值。 有关 add-registry 部分的详细信息,请参阅 AddReg 指令的参考。

使用 BitReg 指令需要定义另一个 INF 文件节。 但是,可以在这样的节中逐位修改现有 REG_BINARY类型值条目的值,从而保留所有剩余位的值。

示例

以下示例演示虚构应用程序的位注册表部分。

[AppX_BitReg]
; set first bit of byte 0 in ProgramData value entry
HKLM,Software\AppX,ProgramData,1,0x01,0 
; preceding would change value 30,00,10 to 31,00,10

; clear high bit of byte 2 in ProgramData value entry
HKLM,Software\AppX,ProgramData,,0x80,2
; preceding would change value 30,00,f0 to 30,00,70

; set second and third bits of byte 1 in ProgramData value entry
HKLM,Software\AppX,ProgramData,1,0x06,1
; preceding would change value 30,00,f0 to 30,06,f0

另请参阅

AddInterface

AddReg

AddService

ClassInstall32

DDInstall

DDInstall。CoInstallers

DDInstall。硬件

InterfaceInstall32