Inf AddReg – direktiva
AddReg direktiva odkazuje na jeden nebo více oddílů registru definovaných _add-registry-sections*, které slouží k úpravě nebo vytváření informací registru.
[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] ...
Každý oddílu registru může obsahovat položky, které mají následující:
Přidejte do registru nové klíče, pravděpodobně s počátečními položkami hodnot.
Přidejte nové položky hodnot do existujících klíčů registru.
Upravte existující položky hodnot konkrétních klíčů v registru.
Každý pojmenovaný oddílu add-registry-section odkazovaný direktivou AddReg má následující formát:
[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"]
oddílu registru může mít libovolný počet položek, z nichž každý je na samostatném řádku. Inf může také obsahovat jeden nebo více volitelných oddílu add-registry-.security oddíly, přičemž každý určuje popisovač zabezpečení použitý pro všechny hodnoty registru popsané v pojmenované add-registry-section.
Položky
reg-root
Identifikuje kořen stromu registru pro další hodnoty zadané v této položce. Hodnota může být jedna z následujících možností:
HKCR
Zkratka pro HKEY_CLASSES_ROOT
HKCU
Zkratka pro HKEY_CURRENT_USER
HKLM
Zkratka pro HKEY_LOCAL_MACHINE
HKU
Zkratka pro HKEY_USERS
HKR
Relativní kořen, ve kterém klíče určené pomocí této zkratky jsou relativní vzhledem k klíči registru přidruženému k oddílu INF, ve kterém se tato AddReg direktiva, jak je uvedeno v následující tabulce.
Oddíl INF obsahující direktivu AddReg | Klíč registru, na který odkazuje HKR |
---|---|
OddílDDInstallINF | softwarového klíče zařízení |
INF DDInstall. Oddíl HW | hardwarového klíče zařízení |
INF [service-install-section] oddíl | Klíč služby Services |
INF [event-log-install] oddíl | Klíč protokolu událostí |
INF [add-interface-section] oddíl | Klíč registru rozhraní zařízení |
Další informace o informacích o ovladačích uložených v kořenovém adresáři HKEY_LOCAL_MACHINE naleznete v tématu Stromy registru a klíče pro zařízení a ovladače.
podklíče
Tato volitelná hodnota, která se vytvoří buď jako %strkey% token definovaný v oddílu Řetězce inf, nebo jako cesta registru pod danou kořenovou reg-root (klíč1\klíč2\klíč3...), určuje jednu z těchto možností:
- Nový podklíč, který se má přidat do registru na konci dané cesty registru.
- Existující podklíč, ve kterém jsou zapsány další hodnoty zadané v této položce (pravděpodobně nahradí hodnotu existující pojmenované položky pojmenované hodnoty daného podklíče).
- Oba nové podklíče, které se mají přidat do registru spolu s počáteční položkou hodnoty.
názvu hodnoty
Tato volitelná hodnota buď pojmenuje existující položku hodnoty v daném (existujícím) podklíči, nebo vytvoří název nové položky hodnoty, která se má přidat do zadaného podklíče , ať už existuje, nebo je nový klíč, který se má přidat do registru. Tuto hodnotu lze vyjádřit buď jako "řetězcový"" nebo jako %strkey% token, který je definován včásti řetězce INF. (Pokud tuto hodnotu vynecháte pro hodnotu typu řetězec, název-položka-hodnota je výchozí položka "bez názvu" pro tento klíč.)
Operační systém podporuje některé speciální název-zadání hodnoty klíčových slov definovaný systémem. Další informace najdete na konci tohoto oddílu Poznámky.
příznaky
Tato volitelná šestnáctková hodnota vyjádřená jako bitová maska ORed se systémem definovanými hodnotami nízkého slova a vysokého příznaku slova definuje datový typ pro položku hodnoty a/nebo řídí operaci doplňku registru.
Hodnoty bitové masky pro každý z těchto příznaků jsou následující:
0x00000001 (FLG_ADDREG_BINVALUETYPE)
Daná hodnota je nezpracovaná data. (Tato hodnota je shodná s FLG_ADDREG_TYPE_BINARY.)
0x00000002 (FLG_ADDREG_NOCLOBBER)
Zabrání nahrazení hodnoty existující položky hodnoty.
0x00000004 (FLG_ADDREG_DELVAL)
Odstraňte daný podklíč z registru nebo odstraňte zadaný název položky hodnoty ze zadaného podklíče registru .
0x00000008 (FLG_ADDREG_APPEND)
Připojte danou hodnotu k existující položce pojmenované hodnoty. Tento příznak je platný jenom v případě, že je nastavený i FLG_ADDREG_TYPE_MULTI_SZ. Zadaná řetězcová hodnota není připojena, pokud již existuje.
0x00000010 (FLG_ADDREG_KEYONLY)
Vytvořte zadaný podklíč , ale ignorujte všechny zadané hodnoty a/nebo hodnoty.
0x00000020 (FLG_ADDREG_OVERWRITEONLY)
Obnovte zadanou hodnotu pouze v případě, že zadaný název položky hodnoty již v daném podklíči existuje .
0x00001000 (FLG_ADDREG_64BITKEY)
(Windows XP a novější verze Windows.) Proveďte zadanou změnu v 64bitovém registru. Pokud není zadáno, provede se změna v nativním registru.
0x00002000 (FLG_ADDREG_KEYONLY_COMMON)
(Windows XP a novější verze Windows.) To je stejné jako FLG_ADDREG_KEYONLY, ale funguje také v del-registry-section direktivy INF DelReg.
0x00004000 (FLG_ADDREG_32BITKEY)
(Windows XP a novější verze Windows.) Proveďte zadanou změnu v 32bitovém registru. Pokud není zadáno, provede se změna v nativním registru.
0x00000000 (FLG_ADDREG_TYPE_SZ)
Daná položka hodnoty a/nebo hodnota je typu REG_SZ.
Poznámka
Tato hodnota je výchozím typem pro zadanou položku hodnoty, takže je možné ji vynechat z libovolného reg-root= řádku v oddílu doplňku registru, který pracuje s položkou hodnoty tohoto typu.
0x00010000 (FLG_ADDREG_TYPE_MULTI_SZ)
Daná položka hodnoty a/nebo hodnota je typu registru REG_MULTI_SZ. Následující pole hodnoty může být seznam řetězců oddělených čárkami. Tato specifikace nevyžaduje pro danou řetězcovou hodnotu žádný ukončovací znak NULL.
0x00020000 (FLG_ADDREG_TYPE_EXPAND_SZ)
Daná hodnota a/nebo hodnota typu registru je REG_EXPAND_SZ.
0x00010001 (FLG_ADDREG_TYPE_DWORD)
Daná hodnota a/nebo hodnota typu registru je REG_DWORD.
0x00020001 (FLG_ADDREG_TYPE_NONE)
Daná hodnota a/nebo hodnota typu registru je REG_NONE.
0x000B0001 (FLG_ADDREG_TYPE_QWORD)
Daná hodnota a/nebo název-položka je typu registru REG_QWORD.
hodnoty
Tato možnost volitelně určuje novou hodnotu pro zadaný název-položka-hodnota, který se má přidat do daného klíče registru. Taková hodnota může být "náhradní" hodnotou pro existující pojmenovanou položku hodnoty v existujícím klíči, hodnotu, která se má připojit (příznak hodnota 0x00010008) k existující s názvem REG_MULTI_SZ-type hodnota položka v existujícím klíči, nová položka hodnoty, která se má zapsat do existujícího klíče, nebo počáteční položku hodnoty pro nový podklíč , který se má přidat do registru.
Výraz takové hodnoty závisí na typu registru zadaném pro příznaknásledujícím způsobem:
Hodnotu typu řetězce registru lze vyjádřit buď jako "řetězcový" nebo jako %strkey% token definovaný v části Řetězce souboru INF. Zadaná hodnota INF nemusí na konci každého řetězce obsahovat ukončovací znak NULL.
Hodnotu číselného typu registru lze vyjádřit jako šestnáctkové číslo (pomocí 0x notace) nebo desetinného čísla.
popisovače zabezpečení
Určuje popisovač zabezpečení, který má být použit pro všechny položky registru vytvořené pojmenovanou add-registry-section.
řetězec popisovače zabezpečení je řetězec s tokeny označující komponentu zabezpečení DACL (D:).
Pokud není zadán oddíl add-registry-section.security oddíl, položky registru dědí nastavení zabezpečení nadřazeného klíče.
Pokud je zadán oddíl doplňku oddíl registruoddílu .security, musí být zahrnuta následující část ACE, aby instalace a upgrady zařízení a systémových aktualizací Service Pack mohly nastat:
- (A;; GHANŠTINA;;; SY) − Uděluje veškerý přístup k místnímu systému.
- (A;; GHANŠTINA;;; BA) − Uděluje veškerý přístup předdefinovaných správcům.
Nezadávejte zadávat řetězce ACE, které udělují přístup k zápisu neprivilegovaným uživatelům.
Informace o řetězcích popisovače zabezpečení naleznete v tématu Jazyk definice popisovače zabezpečení (Windows). Informace o formátu řetězců popisovače zabezpečení naleznete v tématu Popisovač popisovače zabezpečení (Windows).
Další informace o tom, jak určit popisovače zabezpečení, naleznete v tématu Vytváření zabezpečených instalací zařízení.
Poznámky
AddReg direktivu lze zadat v libovolné části uvedené ve výše uvedeném formálním příkazu syntaxe. Tuto direktivu lze také zadat v některé z následujících částí definovaných zápisem INF:
Oddíl service-install-section nebo oddíl protokolu událostí odkazovaný direktivou AddService v INF DDInstall. Oddíl služeb.
Oddíl doplňku rozhraní odkazovaný direktivou AddInterface v INF DDInstall. Oddíl rozhraní.
oddíl install-interface-section odkazovaný v oddílu INF InterfaceInstall32.
Každý oddíl add-registry-section musí být jedinečný pro soubor INF, ale může na něj odkazovat AddReg direktivy v jiných částech stejného INF. Každý název oddílu musí dodržovat obecná pravidla pro definování názvů oddílů popsaných v obecných syntaktických pravidlech pro soubory INF.
Poznámka
Bit nízkého slova v dolním pořadí v hodnotě příznaku rozlišuje mezi znakem a binárními daty.
Chcete-li reprezentovat počet jiných typů registru než jeden z předdefinovaných typů REG_XXX, zadejte nové číslo typu ve vysokém slově příznaku příznak ORed s FLG_ADDREG_BINVALUETYPE v dolním slově.
Data pro takovou hodnotu musí být zadána v binárním formátu jako posloupnost bajtů oddělených čárkami. Pokud například chcete uložit 16 bajtů dat nového datového typu registru, například 0x38, jako položku hodnoty, položka oddílu doplňku by vypadala přibližně takto:
HKR,,MYValue,0x00380001,1,0,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Tuto techniku lze použít k definování nových typů registru pro číselné hodnoty, ale ne pro hodnoty typu REG_EXPAND_SZ, REG_MULTI_SZ, REG_NONEnebo REG_SZ. Další informace o těchto typech najdete v tématu Typy hodnot registru.
Speciální klíčová slova pro název položky hodnoty
Speciální klíčová slova jsou definována pro použití v položkách AddReg. Formát položek, které používají tato klíčová slova, je následující:
[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"] ,
Následující popis obsahuje položky AddReg, které používají tato speciální klíčová slova:
DeviceCharacteristics
Položka DeviceCharacteristics HKR AddReg určuje vlastnosti zařízení.
charakteristiky hodnota je číselná hodnota, která je výsledkem použití or u jedné nebo více hodnot vlastností souboru FILE_*, které jsou definovány v Wdm.h a Ntddk.h.
V INF lze zadat pouze následující hodnoty:
#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
Popis těchto hodnot najdete v tématu IoCreateDevice.
Hodnoty charakteristik, které jsou určeny pomocí DeviceCharacteristics entry, jsou ORed s hodnotami zadanými v každém volání IoCreateDevice, který vytvoří objekt zařízení v zásobníku zařízení. Operace OR nastane po přidání všech objektů zařízení, ale před spuštěním zařízení.
Vlastnosti hodnota (včetně hodnoty nula) přepíší všechny vlastnosti zařízení určené v instalátoru přidružené třídy.
Další informace o vlastnostech zařízení naleznete v tématu Určení charakteristik zařízení.
DeviceType
Položka DeviceType HKR AddReg určuje typ zařízení. Typ zařízení je číselná hodnota konstanty FILE_DEVICE_XXX definované v Wdm.h nebo Ntddk.h. Hodnota příznaku 0x10001 určuje, že hodnota typu zařízení je REG_DWORD. Další informace naleznete v tématu Určení typů zařízení.
Inf instalačního programu třídy by měl určovat typ zařízení, který se vztahuje na všechna nebo téměř všechna zařízení ve třídě. Pokud jsou například zařízení ve třídě typu FILE_DEVICE_CD_ROM, zadejte typu zařízení 0x02. Pokud inf zařízení určuje hodnotu pro DeviceType, přepíše hodnotu nastavenou instalačním programem třídy, pokud existuje. Pokud třída nebo inf zařízení určuje hodnotu DeviceType, správce PnP použije tento typ na objekt fyzického zařízení (PDO) vytvořený ovladačem sběrnice zařízení.
zabezpečení
Položka Security HKR AddReg určuje popisovač zabezpečení zařízení.
řetězec popisovače zabezpečení je řetězec s tokeny označující komponentu zabezpečení DACL (D:).
Inf instalačního programu třídy může zadat popisovač zabezpečení pro třídu zařízení. Inf zařízení může určit popisovač zabezpečení pro jednotlivá zařízení a přepíše zabezpečení třídy. Pokud třída nebo zařízení INF určuje popisovač zabezpečení-popisovač-řetězec, správce PnP rozšíří popisovač na všechny objekty zařízení (DO) pro zařízení. To zahrnuje objekt zařízení funkcí (FDO), volitelné filtrování objektů DOa primárního názvu domény.
Informace o formátu řetězců popisovače zabezpečení naleznete v dokumentaci k sadě Microsoft Windows SDK.
Další informace o tom, jak určit popisovače zabezpečení, naleznete v tématu Vytváření zabezpečených instalací zařízení.
UpperFilters
Položka UpperFilters HKR AddReg určuje ovladač horního filtru PnP. Tato položka v DDInstall. Hw oddíl definuje jeden nebo více ovladačů horního filtru specifických pro zařízení. V části ClassInstall32 tato položka definuje jeden nebo více ovladačů horního filtru pro celou třídu.
LowerFilters
Položka LowerFilters HKR AddReg určuje ovladač dolního filtru PnP. Tato položka v DDInstall. Oddíl HW definuje jeden nebo více ovladačů nižšího filtru specifických pro zařízení. V oddílu ClassInstall32 tato položka definuje jeden nebo více ovladačů pro nižší filtr třídy.
exkluzivní
Položka Exclusive HKR AddReg, pokud existuje a je nastavená na 1, určuje, že zařízení je výhradním zařízením. V opačném případě se zařízení nezachází jako s výhradním. Další informace naleznete v tématu Určení výhradního přístupu k objektům zařízení.
EnumPropPages32
Položka EnumPropPages32 HKR AddReg určuje název souboru dynamické knihovny (DLL), který je poskytovatelem stránky vlastností specifické pro zařízení. Určuje také název ExtensionPropSheetPageProc zpětné volání, jak je implementováno knihovnou DLL. Další informace o stránkách vlastností a funkcích naleznete v sadě Microsoft Windows Software Development Kit (SDK) pro Windows 7 a .NET Framework 4.0.
Důležitý
Název knihovny DLL i ExtensionPropSheetPageProc funkci zpětného volání musí být uzavřeny do uvozovek (" ").
LocationInformationOverride
(Windows XP a novější verze Windows) Položku LocationInformationOverride HKR AddReg lze použít k zadání textového řetězce, který popisuje fyzické umístění zařízení. Přepíše LocationInformation řetězec, který ovladač sběrnice zařízení dodává v reakci na požadavek IRP_MN_QUERY_DEVICE_TEXT.
ResourcePickerTags
Položka ResourcePickerTags HKR AddReg určuje značky výběru prostředků pro zařízení.
ResourcePickerExceptions
Položka ResourcePickerExceptions HKR AddReg určuje konflikty prostředků, které jsou pro zařízení povolené.
Příklady
Direktiva AddReg odkazovala na oddíl Miniport_EventLog_AddReg (SCSI) v tomto příkladu v oddílu definovaném zapisovačem INF, na který odkazuje direktiva AddService v DDInstall. Služby části tohoto 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
Všimněte si, že hodnoty příznaků můžete zadat v šestnáctkovém formátu, jak je znázorněno v příkladu, nebo můžete definovat zástupné symboly řetězců, například %FLG_ADDREG_TYPE_DWORD%
v části [Řetězce] každého souboru INF.
Viz také
DDInstall. služeb