INF DelReg Direktive
Achtung
Wenn Sie ein Universal- oder Windows-Treiber-Paket erstellen, ist diese Direktive nicht gültig. Siehe Verwenden einer universellen INF-Datei und Erste Schritte bei der Entwicklung von Windows-Treibern.
Eine DelReg-Direktive verweist auf einen oder mehrere von INF-Autor*innen definierte Abschnitte, die Schlüssel und/oder Werteinträge beschreiben, die aus der Registrierung entfernt werden sollen.
[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]...
Jeder del-registry-section, der von einer DelReg-Direktive referenziert wird, hat die folgende Form:
[del-registry-section]
reg-root-string,subkey[,value-entry-name][,flags][,value]
reg-root-string,subkey[,value-entry-name][,flags][,value]
...
Ein del-registry-section kann eine beliebige Anzahl von Einträgen enthalten, die jeweils in einer eigenen Zeile stehen.
Entries
reg-root-string
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
Relativer 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 DelReg-Direktive erscheint, wie in der folgenden Tabelle angegeben.
INF-Abschnitt, der die Direktive AddReg 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 einer del-registry-section verwendet werden, die von einer INF DefaultInstall section 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%-Zeichenfolge in einem Strings-Abschnitt der INF oder als Registrierungspfad unter der angegebenen reg-root (key1\key2\key3...) gebildet wird, gibt eine der folgenden Möglichkeiten an:
Einen Unterschlüssel, der aus der Registrierung am Ende des angegebenen Registrierungspfads gelöscht werden soll
Einen vorhandenen Unterschlüssel, aus dem der angegebene Werteintrag-Name gelöscht werden soll
value-entry-name
Dieser Wert identifiziert einen benannten Werteintrag, der aus dem angegebenen Unterschlüssel entfernt werden soll. Dieser Wert und das vorangestellte Komma sollten weggelassen werden, wenn der Unterschlüssel selbst aus der Registrierung entfernt wird.
flags (Windows XP und spätere Versionen von Windows.)
Dieser optionale hexadezimale Wert, ausgedrückt als OR-Bitmaske von systemdefinierten Flag-Werten für das untere und obere Wort, definiert den Datentyp für einen Werteeintrag oder steuert den Vorgang des Löschens der Registrierung. Wenn Flags nicht angegeben ist, wird der value-entry-name (falls angegeben) oder subkey gelöscht.
Die Bitmaskenwerte für jedes dieser Flags lauten wie folgt:
0x00002000 (FLG_DELREG_KEYONLY_COMMON)
Löschen Sie den gesamten Unterschlüssel.
0x00004000 (FLG_DELREG_32BITKEY)
Nimmt die angegebene Änderung in der 32-Bit-Registrierung vor. Wenn nicht angegeben, wird die Änderung in der nativen Registrierung vorgenommen.
0x00018002 (FLG_DELREG_MULTI_SZ_DELSTRING)
Löschen Sie innerhalb eines Registrierungseintrags mit mehreren Einträgen alle Zeichenfolgen, die mit einem durch value angegebenen Zeichenfolge-Wert übereinstimmen. Groß- und Kleinschreibung wird ignoriert.
value (Windows XP und spätere Versionen von Windows.)
Gibt einen Registrierungswert an, wenn flags angibt, dass ein Registrierungswert erforderlich ist.
Hinweise
Eine DelReg-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:
Ein service-install-section- oder event-log-install-Abschnitt, auf den die Direktive AddService in einem INF DDInstall.Services Abschnitt verweist.
Ein add-interface-section, der von der Direktive AddInterface in einem INF DDInstall.Interfaces-Abschnitt referenziert wird.
Ein install-interface-section, auf den in einem INF InterfaceInstall32-Abschnitt verwiesen wird.
Allgemein sollte eine INF niemals versuchen, Unterschlüssel oder Werteinträge innerhalb bestehender Unterschlüssel zu löschen, die von Systemkomponenten oder von INF-Dateien für andere Geräte eingerichtet wurden. Der Zweck einer del-registry-section besteht darin, veraltete Registrierungsinformationen aus einer früheren Installation zu bereinigen, indem eine neue INF-Datei desselben Anbieters verwendet wird.
Jeder del-registry-section-Name muss in der INF-Datei eindeutig sein, kann aber von DelReg-Direktiven in anderen Abschnitten derselben INF referenziert werden. Jeder Abschnittsname muss den allgemeinen Regeln für die Definition von Abschnittsnamen entsprechen. Weitere Informationen zu diesen Regeln finden Sie unter Allgemeine Syntaxregeln für INF-Dateien.
Bei Betriebssystemversionen vor Windows XP besteht die einzige Möglichkeit, einen Schlüssel zu löschen, in der Angabe des folgenden Vorgangs:
reg-root-string, subkey
Für Windows XP und spätere Versionen von Windows ist auch Folgendes zulässig (um die 32-Bit-Registrierung anzugeben):
reg-root-string, subkey,,0x4000
Beispiele
Dieses Beispiel zeigt, wie die INF des Installers für die Klasse COM/LPT-Ports veraltete NT-spezifische Registrierungsinformationen über COM-Ports aus der Registrierung entfernt.
[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