INF AddReg-richtlijn

Een AddReg-instructie verwijst naar een of meer INF-writer-gedefinieerde _add-registry-sections* die worden gebruikt om registergegevens te wijzigen of te maken.

[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) 
[install-interface-section] | 
[service-install-section] | 
[event-log-install] | 
[add-interface-section]

AddReg=add-registry-section[,add-registry-section] ...

Elke sectie register toevoegen kan vermeldingen hebben om het volgende te doen:

  • Voeg nieuwe sleutels toe, mogelijk met initiële waardevermeldingen, aan het register.

  • Voeg nieuwe waardevermeldingen toe aan bestaande registersleutels.

  • Wijzig bestaande waardevermeldingen van bepaalde sleutels in het register.

Elke benoemde add-registry-section waarnaar wordt verwezen door een AddReg-instructie heeft de volgende indeling:

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

[[add-registry-section.security]
"security-descriptor-string"]

Een add-registry-section kan een willekeurig aantal vermeldingen bevatten, elk op een afzonderlijke regel. Een INF kan ook een of meer optionele secties add-registry-section.security bevatten, die elk een beveiligingsdescriptor opgeven die wordt toegepast op alle registerwaarden die worden beschreven in een benoemde add-registry-section.

Invoer

reg-root
Identificeert de hoofdmap van de registerstructuur voor andere waarden die in deze vermelding zijn opgegeven. De waarde kan een van de volgende zijn:

HKCR
Afkorting voor HKEY_CLASSES_ROOT

HKCU
Afkorting voor HKEY_CURRENT_USER

HKLM
Afkorting voor HKEY_LOCAL_MACHINE

HKU
Afkorting voor HKEY_USERS

HKR
Relatieve hoofdmap, waarin sleutels die met deze afkorting worden opgegeven, relatief zijn ten opzichte van de registersleutel die is gekoppeld aan de INF-sectie waarin deze AddReg-instructie wordt weergegeven, zoals aangegeven in de volgende tabel.

INF-sectie met AddReg-richtlijn Registersleutel waarnaar wordt verwezen door HKR
Sectie INF DDInstall De softwaresleutel van het apparaat
INF DDInstall. HW-sectie De hardwaresleutel van het apparaat
SECTIE INF [service-install-section] De Services-sleutel
SECTIE INF [event-log-install] De EventLog-sleutel
SECTIE INF [add-interface-section] De registersleutel van de apparaatinterface

Note

HKR kan niet worden gebruikt in een invoegtoepassingssectie waarnaar wordt verwezen vanuit een INF DefaultInstall-sectie.

Zie Registerstructuren en sleutels voor apparaten en stuurprogramma's voor apparaten en stuurprogramma's voor meer informatie over stuurprogrammagegevens die zijn opgeslagen in de hoofdmap van de HKEY_LOCAL_MACHINE.

Subsleutel
Deze optionele waarde, gevormd als een %strkey% token gedefinieerd in een sectie Tekenreeksen van de INF of als een registerpad onder de opgegeven reg-root (key1\key2\key3...), geeft een van de volgende:

  • Aan het einde van het opgegeven registerpad wordt een nieuwe subsleutel toegevoegd aan het register.
  • Een bestaande subsleutel waarin de extra waarden die in deze vermelding zijn opgegeven, worden geschreven (mogelijk vervangen door de waarde van een bestaande benoemde waardevermelding van de opgegeven subsleutel).
  • Beide een nieuwe subsleutel die aan het register moet worden toegevoegd, samen met de initiële waardevermelding.

waarde-vermelding-naam
Deze optionele waarde geeft een bestaande waardevermelding in de opgegeven (bestaande) subsleutel of maakt de naam van een nieuwe waardevermelding die moet worden toegevoegd aan de opgegeven subsleutel, ongeacht of deze al bestaat of een nieuwe sleutel is die moet worden toegevoegd aan het register. Deze waarde kan worden uitgedrukt als 'aanhalingstekenreeks' of als een %strkey% token dat is gedefinieerd in de sectie Tekenreeksen van INF. (Als dit wordt weggelaten voor een waarde van het tekenreekstype, is de waarde-invoernaam de standaardwaardevermelding 'naamloos' voor deze sleutel.)

Het besturingssysteem ondersteunt enkele door het systeem gedefinieerde speciale trefwoorden voor waardeninvoer . Zie het einde van deze sectie Opmerkingen voor meer informatie.

flags
Deze optionele hexadecimale waarde, uitgedrukt als een ORed-bitmasker van door het systeem gedefinieerde lage woord- en hoge woordvlagwaarden, definieert het gegevenstype voor een waardevermelding en/of bepaalt de bewerking van het add-register.

Bitmaskerwaarden voor elk van deze vlaggen zijn als volgt:

0x00000001 (FLG_ADDREG_BINVALUETYPE)
De opgegeven waarde is onbewerkte gegevens. (Deze waarde is identiek aan de FLG_ADDREG_TYPE_BINARY.)

0x00000002 (FLG_ADDREG_NOCLOBBER)
Voorkomen dat een bepaalde waarde de waarde van een bestaande waardevermelding vervangt.

0x00000004 (FLG_ADDREG_DELVAL)
Verwijder de opgegeven subsleutel uit het register of verwijder de opgegeven waarde-vermeldingsnaam uit de opgegeven registersubsleutel.

0x00000008 (FLG_ADDREG_APPEND)
Voeg een bepaalde waarde toe aan die van een bestaande benoemde waardevermelding. Deze vlag is alleen geldig als FLG_ADDREG_TYPE_MULTI_SZ ook is ingesteld. De opgegeven tekenreekswaarde wordt niet toegevoegd als deze al bestaat.

0x00000010 (FLG_ADDREG_KEYONLY)
Maak de opgegeven subsleutel, maar negeer eventuele opgegeven waarde-invoernaam en/of waarde.

0x00000020 (FLG_ADDREG_OVERWRITEONLY)
Stel de opgegeven waarde alleen opnieuw in als de opgegeven waarde-vermelding-naam al bestaat in de opgegeven subsleutel.

0x00001000 (FLG_ADDREG_64BITKEY)
(Windows XP en latere versies van Windows.) Breng de opgegeven wijziging aan in het 64-bits register. Als dit niet is opgegeven, wordt de wijziging aangebracht in het systeemeigen register.

0x00002000 (FLG_ADDREG_KEYONLY_COMMON)
(Windows XP en latere versies van Windows.) Dit is hetzelfde als FLG_ADDREG_KEYONLY, maar werkt ook in een del-registry-sectie van een INF DelReg-richtlijn.

0x00004000 (FLG_ADDREG_32BITKEY)
(Windows XP en latere versies van Windows.) Breng de opgegeven wijziging aan in het 32-bits register. Als dit niet is opgegeven, wordt de wijziging aangebracht in het systeemeigen register.

0x00000000 (FLG_ADDREG_TYPE_SZ)
De opgegeven waardevermelding en/of waarde is van het type REG_SZ.

Note

Deze waarde is het standaardtype voor een opgegeven waardevermelding, dus de vlagwaarde kan worden weggelaten uit elke reg-root= regel in een sectie voor het toevoegen van register die werkt op een waardevermelding van dit type.

0x00010000 (FLG_ADDREG_TYPE_MULTI_SZ)
De opgegeven waardevermelding en/of waarde is van het registertype REG_MULTI_SZ. Het volgende waardeveld kan een lijst met tekenreeksen zijn, gescheiden door komma's. Voor deze specificatie is geen NULL-afsluiter vereist voor een bepaalde tekenreekswaarde.

0x00020000 (FLG_ADDREG_TYPE_EXPAND_SZ)
De opgegeven waarde-vermelding-naam en/of waarde is van het registertype REG_EXPAND_SZ.

0x00010001 (FLG_ADDREG_TYPE_DWORD)
De opgegeven waarde-vermelding-naam en/of waarde is van het registertype REG_DWORD.

0x00020001 (FLG_ADDREG_TYPE_NONE)
De opgegeven waarde-vermelding-naam en/of waarde is van het registertype REG_NONE.

0x000B0001 (FLG_ADDREG_TYPE_QWORD)
De opgegeven waarde-vermelding-naam en/of waarde is van het registertype REG_QWORD.

value
Hiermee geeft u desgewenst een nieuwe waarde op voor de opgegeven waarde-vermelding-naam die moet worden toegevoegd aan de opgegeven registersleutel. Een dergelijke waarde kan een 'vervangingswaarde' zijn voor een bestaande benoemde waardevermelding in een bestaande sleutel, een waarde die moet worden toegevoegd (vlagwaarde0x00010008) aan een bestaande waardevermelding met de naam REG_MULTI_SZ-type in een bestaande sleutel, een nieuwe waardevermelding die moet worden weggeschreven naar een bestaande sleutel of de initiële waardevermelding voor een nieuwe subsleutel die moet worden toegevoegd aan het register.

De expressie van een dergelijke waarde is afhankelijk van het registertype dat is opgegeven voor de vlag, als volgt:

  • Een waarde van het registertekenreekstype kan worden uitgedrukt als een 'aanhalingstekenreeks' of als een %strkey% token dat is gedefinieerd in een sectie Tekenreeksen van het INF-bestand. Een dergelijke INF-opgegeven waarde hoeft geen NULL-eindteken aan het einde van elke tekenreeks op te nemen.

  • Een numerieke registerwaarde kan worden uitgedrukt als een hexadecimaal getal (met 0x notatie) of een decimaal getal.

security-descriptor-string
Hiermee geeft u een beveiligingsdescriptor op die moet worden toegepast op alle registervermeldingen die zijn gemaakt door de benoemde add-registry-section. De security-descriptor-string is een tekenreeks met tokens om het DACL-beveiligingsonderdeel (D:) aan te geven.

Als er geen sectie add-registry-section.security is opgegeven, nemen registervermeldingen de beveiligingsinstellingen van de bovenliggende sleutel over.

Als er een sectie add-registry-section.security is opgegeven, moeten de volgende ACE's worden opgenomen zodat installaties en upgrades van apparaten en systeemservicepacks kunnen optreden:

  • (A;; GA;;; SY) – verleent alle toegang tot het lokale systeem.
  • (A;; GA;;; BA) − verleent alle toegang tot ingebouwde beheerders.

Geef geen ACE-tekenreeksen op die schrijftoegang verlenen aan niet-gemachtigde gebruikers.

Zie Security Descriptor Definition Language (Windows) voor informatie over beveiligingsdescriptortekenreeksen. Zie Security Descriptor Definition Language (Windows) voor informatie over de indeling van beveiligingsdescriptortekenreeksen.

Zie Beveiligde apparaatinstallaties maken voor meer informatie over het opgeven van beveiligingsdescriptors.

Remarks

Een AddReg-instructie kan worden opgegeven onder een van de secties die in de bovenstaande formele syntaxisinstructie worden weergegeven. Deze richtlijn kan ook worden opgegeven onder een van de volgende INF-writer-gedefinieerde secties:

Elke naam van de add-registry-section moet uniek zijn voor het INF-bestand, maar kan worden verwezen door AddReg-instructies in andere secties van hetzelfde INF. Elke sectienaam moet voldoen aan de algemene regels voor het definiëren van sectienamen die worden beschreven in Algemene syntaxisregels voor INF-bestanden.

Note

De lagere volgorde van het lage woord in een vlagwaarde maakt onderscheid tussen teken en binaire gegevens.

Als u een ander registertype wilt weergeven dan een van de vooraf gedefinieerde REG_XXX-typen , geeft u een nieuw typenummer op in het hoge woord van de vlag ORed met FLG_ADDREG_BINVALUETYPE in het lage woord.

De gegevens voor een dergelijke waarde moeten worden opgegeven in binaire indeling als een reeks bytes gescheiden door komma's. Als u bijvoorbeeld 16 bytes aan gegevens van een nieuw registergegevenstype wilt opslaan, zoals 0x38, als waardevermelding, ziet de sectievermelding voor het toevoegen van het register er ongeveer als volgt uit:

HKR,,MYValue,0x00380001,1,0,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Deze techniek kan worden gebruikt om nieuwe registertypen te definiëren voor numerieke waarden, maar niet voor waarden van het type REG_EXPAND_SZ, REG_MULTI_SZ, REG_NONE of REG_SZ. Zie Registerwaardetypen voor meer informatie over deze typen.

Speciale trefwoorden voor waarden en namen

Speciale trefwoorden worden gedefinieerd voor gebruik in de HKR AddReg-vermeldingen . De notatie voor de vermeldingen die gebruikmaken van deze trefwoorden is als volgt:

[HKR,,DeviceCharacteristics,0x10001,characteristics] 
[HKR,,DeviceType,0x10001,device-type] 
[HKR,,Security,,security-descriptor-string] 
[HKR,,UpperFilters,0x10000,service-name] 
[HKR,,LowerFilters,0x10000,service-name] 
[HKR,,Exclusive,0x10001,exclusive-device] 
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
[HKR,,LocationInformationOverride,,"text-string"] 
[HKR,,ResourcePickerTags,,"text-string"] 
[HKR,,ResourcePickerExceptions,,"text-string"] ,

Hieronder worden de HKR AddReg-vermeldingen beschreven die gebruikmaken van deze speciale trefwoorden:

DeviceCharacteristics
Een HKR AddReg-vermeldingvoor DeviceCharacteristics specificeert kenmerken voor het apparaat. De waarde van de kenmerken is een numerieke waarde die het resultaat is van het gebruik van OF op een of meer FILE_* bestandskenmerken, die zijn gedefinieerd in Wdm.h en Ntddk.h.

Alleen de volgende waarden kunnen worden opgegeven in een INF:

#define FILE_REMOVABLE_MEDIA            0x00000001
#define FILE_READ_ONLY_DEVICE           0x00000002
#define FILE_FLOPPY_DISKETTE            0x00000004
#define FILE_WRITE_ONCE_MEDIA           0x00000008
#define FILE_DEVICE_SECURE_OPEN         0x00000100

Zie IoCreateDevice voor een beschrijving van deze waarden.

De kenmerkenwaarden, die worden opgegeven met behulp van een DeviceCharacteristics-vermelding , zijn ORed met waarden die zijn opgegeven in elke aanroep van IoCreateDevice waarmee een apparaatobject op de apparaatstack wordt gemaakt. De OR-bewerking vindt plaats nadat alle apparaatobjecten zijn toegevoegd, maar voordat het apparaat wordt gestart.

De waarde van de kenmerken (inclusief een waarde van nul) overschrijft alle kenmerken van het klassebrede apparaat die zijn opgegeven in het bijbehorende klasseinstallatieprogramma INF.

Zie Apparaatkenmerken opgeven voor meer informatie over apparaatkenmerken.

DeviceType
Een DeviceType HKR AddReg-vermelding geeft een apparaattype voor het apparaat op. Het apparaattype is de numerieke waarde van een FILE_DEVICE_XXX-constante die is gedefinieerd in Wdm.h of Ntddk.h. De vlagwaarde van 0x10001 geeft aan dat de waarde van het apparaattype een REG_DWORD is. Zie Apparaattypen opgeven voor meer informatie.

Een klasse-installatieprogramma INF moet het apparaattype opgeven dat van toepassing is op alle of bijna alle apparaten in de klasse. Als de apparaten in de klasse bijvoorbeeld van het type FILE_DEVICE_CD_ROM zijn, geeft u een apparaattype van 0x02 op. Als een apparaat-INF een waarde voor DeviceType opgeeft, wordt de waarde die is ingesteld door het klasse-installatieprogramma, indien van toepassing, overschreven. Als de klasse of het apparaat-INF een DeviceType-waarde opgeeft, past de PnP-manager dat type toe op het fysieke apparaatobject (PDO) dat is gemaakt door het busstuurprogramma van het apparaat.

Security
Een Security HKR AddReg-vermelding geeft een beveiligingsdescriptor voor het apparaat op. De security-descriptor-string is een tekenreeks met tokens om het DACL-beveiligingsonderdeel (D:) aan te geven.

Een klasse-installatieprogramma INF kan een beveiligingsdescriptor voor een apparaatklasse opgeven. Een apparaat-INF kan een beveiligingsdescriptor voor een afzonderlijk apparaat opgeven, waardoor de beveiliging voor de klasse wordt overschreven. Als de klasse en/of apparaat-INF een security-descriptor-string opgeeft, geeft de PnP-manager descriptor door aan alle apparaatobjecten ( DO's) voor een apparaat. Dit omvat het functieapparaatobject (FDO), optionele filter-DOS's en de PDO.

Zie de Microsoft Windows SDK-documentatie voor informatie over de indeling van tekenreeksen voor beveiligingsdescriptors.

Zie Beveiligde apparaatinstallaties maken voor meer informatie over het opgeven van beveiligingsdescriptors.

UpperFilters
Een UpperFilters HKR AddReg-vermelding geeft een PnP-stuurprogramma voor het bovenste filter aan. Deze vermelding in een DDInstall. De HW-sectie definieert een of meer apparaatspecifieke stuurprogramma's voor bovenfilters. In een sectie ClassInstall32 definieert deze vermelding een of meer klassebrede stuurprogramma's voor het bovenfilter.

LowerFilters
Een LowerFilters HKR AddReg-vermelding specificeert een PnP-stuurprogramma met een lager filter. Deze vermelding in een DDInstall. De HW-sectie definieert een of meer apparaatspecifieke stuurprogramma's met een lager filter. In een sectie ClassInstall32 definieert deze vermelding een of meer klassebrede stuurprogramma's met een lager filter.

Exclusief
Een Exclusieve HKR AddReg-vermelding , indien aanwezig en is ingesteld op '1', geeft aan dat het apparaat een exclusief apparaat is. Anders wordt het apparaat niet beschouwd als exclusief. Zie Exclusieve toegang tot apparaatobjecten opgeven voor meer informatie.

EnumPropPages32
Een EnumPropPages32 HKR AddReg-vermelding geeft de naam op van een DLL-bestand (Dynamic Link Library) dat een apparaatspecifieke eigenschapspaginaprovider is. Ook wordt de naam opgegeven van de callback-functie ExtensionPropSheetPageProc zoals geïmplementeerd door het DLL-bestand. Zie de Microsoft Windows Software Development Kit (SDK) voor Windows 7 en .NET Framework 4.0 voor meer informatie over eigenschappenpagina's en functies.

Important

Zowel de naam van de DLL- als de callback-functie ExtensionPropSheetPageProc moeten tussen aanhalingstekens (" ") staan.

LocationInformationOverride
(Windows XP en latere versies van Windows) Een LocationInformationOverride HKR AddReg-vermelding kan worden gebruikt om een tekenreeks op te geven die de fysieke locatie van een apparaat beschrijft. Hiermee wordt de LocationInformation-tekenreeks overschreven die het busstuurprogramma van het apparaat levert als reactie op een IRP_MN_QUERY_DEVICE_TEXT aanvraag.

ResourcePickerTags
Een ResourcePickerTags HKR AddReg-vermelding specificeert tags voor resourcekiezer voor een apparaat.

ResourcePickerExceptions
Een ResourcePickerExceptions HKR AddReg-vermelding geeft de resourceconflicten op die zijn toegestaan voor een apparaat.

Examples

Een AddReg-instructie verwijst naar de sectie (SCSI) Miniport_EventLog_AddReg in dit voorbeeld, onder een INF-writer-gedefinieerde sectie waarnaar wordt verwezen door de AddService-instructie in een DDInstall. Sectie Services van deze INF.

[Miniport_EventLog_AddReg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll" 
; double quotation marks delimiters in preceding entry prevent truncation 
; if line wraps
 
HKR,,TypesSupported,0x00010001,7 

U kunt vlagwaarden opgeven in hexadecimale indeling, zoals wordt weergegeven in het voorbeeld, of u kunt tijdelijke aanduidingen voor tekenreeksen definiëren, zoals %FLG_ADDREG_TYPE_DWORD% in de sectie [Tekenreeksen] van elk INF-bestand.

Zie ook

AddInterface

AddService

BitReg

ClassInstall32

DDInstall

DDInstall. CoInstallers

DDInstall. HW

DDInstall. Interfaces

DDInstall. Services

DelReg

InterfaceInstall32

Tekenreeksen