Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Achtung
Ab Windows 11 Version 22H2 ist ein Treiberpaket, das diese Direktive verwendet, nicht mehr für eine Signatur vom Hardware Developer Center geeignet.
Universelle Treiberpakete und Windows-Treiber können diese Direktive nicht verwenden.
Eine BitReg-Direktive verweist auf einen oder mehrere vom INF-Autor*innen definierte Abschnitte, die zum Festlegen oder Löschen von Bits innerhalb eines vorhandenen Werteintrags vom Typ REG_BINARY in der Registrierung verwendet werden. Diese Direktive wird jedoch nur selten in INF-Dateien für Geräte/Treiber verwendet.
[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]...
Eine BitReg-Direktive kann unter jedem der Abschnitte angegeben werden, die in der formalen Syntaxanweisung oben aufgeführt sind. Diese Direktive kann auch in einem der folgenden von INF-Autor*innen definierten Abschnitte angegeben werden:
- Einem service-install-section oder event-log-install-Abschnitt, auf den die Direktive AddService in einem DDInstall.Services-Abschnitt verweist.
- Ein add-interface-section, der von der Direktive AddInterface in einem DDInstall.Interfaces-Abschnitt referenziert wird.
- Ein Install-interface-section, der in einem InterfaceInstall32-Abschnitt referenziert wird
Jeder benannte Abschnitt, der von einer BitReg-Direktive referenziert wird, hat die folgende Form:
[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
...
Ein bit-registry-section kann eine beliebige Anzahl von Einträgen enthalten, die jeweils in einer eigenen Zeile stehen.
Entries
reg-root
Identifiziert die Root des Registrierungsbaums für andere in diesem Eintrag angegebene Werte. Der Wert kann in folgenden Formen vorliegen:
HKCR
Abkürzung für HKEY_CLASSES_ROOT.
HKCU
Abkürzung für HKEY_CURRENT_USER.
HKLM
Abkürzung für HKEY_LOCAL_MACHINE.
HKU
Abkürzung für HKEY_USERS.
HKR
Relatives Root – d. h. Schlüssel, die mit dieser Abkürzung angegeben werden, sind relativ zu dem Registrierungsschlüssel, der mit dem INF-Abschnitt verbunden ist, in dem diese BitReg-Direktive erscheint, wie in der folgenden Tabelle angegeben.
INF-Abschnitt, der die BitReg-Direktive enthält | Registrierungsschlüssel, der von HKR referenziert wird |
---|---|
INF DDInstall Abschnitt | Der Softwareschlüssel des Geräts |
INF DDInstall.HW Abschnitt | Der Hardwareschlüssel des Geräts |
INF DDInstall.Services Abschnitt | Der Services-Schlüssel |
Hinweis
HKR kann nicht in einem bit-registry-section verwendet werden, der von einem INF DefaultInstall-Abschnitt referenziert wird.
Weitere Informationen über Treiberinformationen, die unter dem HKEY_LOCAL_MACHINE-Root gespeichert werden, finden Sie unter Registrierungsbäume und -schlüssel für Geräte und Treiber.
subkey
Dieser optionale Wert, der entweder als %strkey% Token in einem Strings-Abschnitt der INF oder als Registrierungspfad unter der angegebenen reg-root (key1\key2\key3...) ausgedrückt wird, gibt den Schlüssel an, der den zu ändernden Werteintrag enthält.
value-entry-name
Gibt den Namen eines bestehenden Werteintrags vom Typ REG_BINARY in dem (bestehenden) Unterschlüssel an, der geändert werden soll. Er kann entweder als „Zeichenfolge in Anführungszeichen“ oder als %strkey% Token ausgedrückt werden, das im Abschnitt Strings der INF definiert ist.
flags
Dieser optionale hexadezimale Wert, ausgedrückt als eine OD-verknüpfte Bitmaske aus systemdefinierten Low Word- und High Word-Flag-Werten, gibt an, ob die in der angegebenen Byte-Maske angegebenen Bits gelöscht oder gesetzt werden sollen. Der Standardwert ist Null, wodurch die Bits im 64-Bit-Bereich der Registrierung gelöscht werden.
Die Bitmaskenwerte für jedes dieser Flags lauten wie folgt:
0x00000000 (FLG_BITREG_CLEARBITS)
Löschen der durch Byte-Maske angegebenen Bits.
0x00000001 (FLG_BITREG_SETBITS)
Setzen der durch Byte-Maske angegebenen Bits.
0x00004000 (FLG_BITREG_32BITKEY) (Windows XP und spätere Versionen von Windows.)
Nimmt die angegebene Änderung in der 32-Bit-Registrierung vor. Wenn nicht angegeben, wird die Änderung in der nativen Registrierung vorgenommen.
byte-mask
Diese bytegroße Maske, ausgedrückt in hexadezimaler Notation, gibt an, welche Bits im aktuellen Wert des angegebenen value-entry-name gelöscht oder festgelegt werden sollen.
byte-to-modify
Dieser bytegroße Wert, ausgedrückt in dezimaler Schreibweise, gibt den nullbasierten Index des Bytes innerhalb des zu ändernden Wertes vom Typ REG_BINARY an.
Hinweise
Jeder bit-registry-section-Name muss in der INF-Datei eindeutig sein, aber er kann von BitReg-Direktiven in anderen Sektionen derselben INF referenziert werden. Jeder von INF-Autor*innen erstellte Abschnittsname muss innerhalb der INF-Datei eindeutig sein und den allgemeinen Regeln für die Definition von Abschnittsnamen entsprechen. Weitere Informationen zu diesen Regeln finden Sie unter Allgemeine Syntaxregeln für INF-Dateien.
Der Wert eines vorhandenen Werteintrags vom Typ REG_BINARY kann auch geändert werden, indem sein aktueller Wert in einem Abschnitt add-registry an anderer Stelle in der INF-Datei überschrieben wird. Weitere Informationen über add-registry-sections finden Sie in der Referenz für die Direktive AddReg.
Die Verwendung einer BitReg-Direktive erfordert die Definition eines weiteren INF-Dateiabschnitts. Allerdings kann der Wert eines vorhandenen Werteintrags vom Typ REG_BINARY in einem solchen Abschnitt Bit für Bit geändert werden, so dass die Werte aller übrigen Bits erhalten bleiben.
Beispiele
Das folgende Beispiel zeigt einen Bit-Registrierungsabschnitt für eine fiktive Anwendung.
[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