Dyrektywa INF AddReg

Dyrektywa AddReg odwołuje się do co najmniej jednej zdefiniowanej przez moduł zapisywania INF _add-registry-sections* używanej do modyfikowania lub tworzenia informacji rejestru.

[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żda sekcja add-registry-może zawierać wpisy, aby wykonać następujące czynności:

  • Dodaj nowe klucze, prawdopodobnie z wpisami wartości początkowej, do rejestru.

  • Dodaj nowe wpisy wartości do istniejących kluczy rejestru.

  • Zmodyfikuj istniejące wpisy wartości określonych kluczy w rejestrze.

Każda nazwana sekcja add-registry-referenced by a AddReg dyrektywy ma następujący format:

[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"]

Sekcja add-registry-może zawierać dowolną liczbę wpisów, z których każda jest w osobnym wierszu. InF może również zawierać co najmniej jedną opcjonalną sekcję add-registry-section.security, z których każdy określa deskryptor zabezpieczeń stosowany do wszystkich wartości rejestru opisanych w nazwanej sekcji add-registry-section.

Wpisy

reg-root
Identyfikuje katalog główny drzewa rejestru dla innych wartości podanych w tym wpisie. Może to być jedna z następujących wartości:

HKCR
Skrót HKEY_CLASSES_ROOT

HKCU (Międzynarodowa Organizacja Turystyczna
Skrót HKEY_CURRENT_USER

HKLM powiedział:
Skrót HKEY_LOCAL_MACHINE

HKU
Skrót HKEY_USERS

HKR
Względny katalog główny, w którym klucze określone za pomocą tego skrótu są względne względem klucza rejestru skojarzonego z sekcją INF, w której pojawia się ta dyrektywa AddReg , jak wskazano w poniższej tabeli.

Sekcja INF zawierająca dyrektywę AddReg Klucz rejestru przywołyny przez HKR
Sekcja INF DDInstall Klucz oprogramowania urządzenia
INF DDInstall. Sekcja HW Klucz sprzętowy urządzenia
Sekcja INF [service-install-section] Klucz usług
Sekcja INF [event-log-install] Klucz dziennika zdarzeń
Sekcja INF [add-interface-section] Klucz rejestru interfejsu urządzenia

Uwaga

Nie można użyć klucza HKR w sekcji add-registry-referenced z sekcji INF DefaultInstall.

Aby uzyskać więcej informacji o sterownikach przechowywanych w katalogu głównym HKEY_LOCAL_MACHINE , zobacz Drzewa rejestru i klucze dla urządzeń i sterowników.

podklucz
Ta opcjonalna wartość, utworzona jako %strkey% token zdefiniowany w sekcji Ciągi INF lub jako ścieżka rejestru w danym reg-root (klucz1\klucz2\klucz3...), określa jedną z następujących wartości:

  • Nowy podklucz, który ma zostać dodany do rejestru na końcu danej ścieżki rejestru.
  • Istniejący podklucz, w którym zapisywane są dodatkowe wartości określone w tym wpisie (ewentualnie zastępując wartość istniejącego nazwanego wpisu wartości danego podklucza).
  • Oba nowe podklucze do dodania do rejestru wraz z jego wpisem wartości początkowej.

value-entry-name
Ta opcjonalna wartość nazywa istniejący wpis wartości w danym podkluczu (istniejącym) lub tworzy nazwę nowego wpisu wartości, który ma zostać dodany w określonym podkluczu, niezależnie od tego, czy już istnieje, czy jest nowym kluczem, który ma zostać dodany do rejestru. Tę wartość można wyrazić jako "ciąg cytowany" lub jako %strkey% token zdefiniowany w sekcji Ciągi INF. (Jeśli zostanie to pominięte dla wartości typu ciągu, wartość-entry-name jest domyślnym wpisem wartości "unnamed" dla tego klucza).

System operacyjny obsługuje określone przez system specjalne słowa kluczowe value-entry-name . Aby uzyskać więcej informacji, zobacz koniec tej sekcji uwagi .

flags
Ta opcjonalna wartość szesnastkowa, wyrażona jako maska bitów ORed zdefiniowanych przez system wartości niskich wyrazów i flag wysokich wyrazów, definiuje typ danych dla wpisu wartości i/lub kontroluje operację dodawania rejestru.

Wartości maski bitów dla każdej z tych flag są następujące:

0x00000001 (FLG_ADDREG_BINVALUETYPE)
Podana wartość to "nieprzetworzone" dane. (Ta wartość jest identyczna z FLG_ADDREG_TYPE_BINARY).

0x00000002 (FLG_ADDREG_NOCLOBBER)
Zapobiegaj zastępowaniu wartości przez daną wartość istniejącego wpisu wartości.

0x00000004 (FLG_ADDREG_DELVAL)
Usuń dany podklucz z rejestru lub usuń określoną wartość-entry-name z określonego podklucza rejestru.

0x00000008 (FLG_ADDREG_APPEND)
Dołącz daną wartość do istniejącej nazwy wpisu wartości. Ta flaga jest prawidłowa tylko wtedy, gdy FLG_ADDREG_TYPE_MULTI_SZ jest również ustawiona. Określona wartość ciągu nie jest dołączana, jeśli już istnieje.

0x00000010 (FLG_ADDREG_KEYONLY)
Utwórz dany podklucz, ale zignoruj wszystkie podane wartości-entry-name i/lub wartość.

0x00000020 (FLG_ADDREG_OVERWRITEONLY)
Zresetuj wartość podaną tylko wtedy, gdy określona nazwa-wpisu-wartości już istnieje w danym podkluczu.

0x00001000 (FLG_ADDREG_64BITKEY)
(Windows XP i nowsze wersje Windows). Wprowadź określoną zmianę w rejestrze 64-bitowym. Jeśli nie zostanie określony, zmiana zostanie wprowadzona do rejestru natywnego.

0x00002000 (FLG_ADDREG_KEYONLY_COMMON)
(Windows XP i nowsze wersje Windows). Jest to takie samo, jak FLG_ADDREG_KEYONLY, ale działa również w sekcji del-registrydyrektywy INF DelReg.

0x00004000 (FLG_ADDREG_32BITKEY)
(Windows XP i nowsze wersje Windows). Wprowadź określoną zmianę w rejestrze 32-bitowym. Jeśli nie zostanie określony, zmiana zostanie wprowadzona do rejestru natywnego.

0x00000000 (FLG_ADDREG_TYPE_SZ)
Podany wpis wartości i/lub wartość jest typu REG_SZ.

Uwaga

Ta wartość jest domyślnym typem dla określonego wpisu wartości, więc wartość flag można pominąć z dowolnego wiersza reg-root= w sekcji add-registry- , która działa na wpis wartości tego typu.

0x00010000 (FLG_ADDREG_TYPE_MULTI_SZ)
Podany wpis wartości i/lub wartość jest typu rejestru REG_MULTI_SZ. Pole wartości, które następuje poniżej, może być listą ciągów rozdzielonych przecinkami. Ta specyfikacja nie wymaga żadnego terminatora o wartości NULL dla danej wartości ciągu.

0x00020000 (FLG_ADDREG_TYPE_EXPAND_SZ)
Podana wartość-entry-name i/lub wartość jest typu rejestru REG_EXPAND_SZ.

0x00010001 (FLG_ADDREG_TYPE_DWORD)
Podana wartość-entry-name i/lub wartość jest typu rejestru REG_DWORD.

0x00020001 (FLG_ADDREG_TYPE_NONE)
Dana wartość-entry-name i/lub wartość jest typu rejestru REG_NONE.

0x000B0001 (FLG_ADDREG_TYPE_QWORD)
Podana wartość-entry-name i/lub wartość jest typu rejestru REG_QWORD.

value
Opcjonalnie określa nową wartość dla określonej nazwy-wpisu-wartości , która ma zostać dodana do danego klucza rejestru. Taka wartość może być "zastępczą" wartością istniejącego nazwanego wpisu wartości w istniejącym kluczu, wartością, która ma zostać dołączona (wartość flagi0x00010008) do istniejącego wpisu wartości o nazwie REG_MULTI_SZ typu w istniejącym kluczu, nowego wpisu wartości, który ma zostać zapisany w istniejącym kluczu, lub wpis wartości początkowej dla nowego podklucza , który ma zostać dodany do rejestru.

Wyrażenie takiej wartości zależy od typu rejestru określonego dla flagi w następujący sposób:

  • Wartość typu ciągu rejestru może być wyrażona jako "ciąg cytowany" lub jako %strkey% token zdefiniowany w sekcji Ciągi pliku INF. Taka wartość określona w formacie INF nie musi zawierać terminatora o wartości NULL na końcu każdego ciągu.

  • Wartość liczbowa rejestru może być wyrażona jako szesnastkowa (przy użyciu notacji 0x) lub liczby dziesiętnej.

security-descriptor-string
Określa deskryptor zabezpieczeń, który ma być stosowany do wszystkich wpisów rejestru utworzonych przez nazwę add-registry-section. Ciąg-deskryptor-zabezpieczeń jest ciągiem z tokenami wskazującymi składnik zabezpieczeń DACL (D:).

Jeśli nie określono sekcji add-registry-section.security, wpisy rejestru dziedziczą ustawienia zabezpieczeń klucza nadrzędnego.

Jeśli zostanie określona sekcja add-registry-section.security, należy uwzględnić następujące elementy ACE, aby instalacje i uaktualnienia urządzeń i dodatków Service Pack systemu mogły wystąpić:

  • (A;; OGÓLNA dostępność;;; SY) − udziela całego dostępu do systemu lokalnego.
  • (A;; OGÓLNA dostępność;;; BA) − udziela dostępu wszystkim administratorom wbudowanym.

Nie należy określać ciągów ACE, które udzielają dostępu do zapisu użytkownikom nieuprzywilejowanych.

Aby uzyskać informacje na temat ciągów deskryptora zabezpieczeń, zobacz Security Descriptor Definition Language (Windows). Aby uzyskać informacje na temat formatu ciągów deskryptora zabezpieczeń, zobacz Security Descriptor Definition Language (Windows).

Aby uzyskać więcej informacji na temat określania deskryptorów zabezpieczeń, zobacz Tworzenie bezpiecznych instalacji urządzeń.

Remarks

Dyrektywę AddReg można określić w dowolnej sekcji pokazanej w powyższej instrukcji składni formalnej. Tę dyrektywę można również określić w dowolnej z następujących sekcji zdefiniowanych przez moduł zapisywania INF:

Każda nazwa sekcji add-registry-section musi być unikatowa dla pliku INF, ale może być przywołyna przez dyrektywy AddReg w innych sekcjach tego samego inf. Każda nazwa sekcji musi być zgodna z ogólnymi regułami definiowania nazw sekcji opisanych w sekcji Ogólne reguły składni dla plików INF.

Uwaga

Bit niższej kolejności małego słowa w wartości flagi rozróżnia dane znakowe i binarne.

Aby reprezentować liczbę typów rejestru innych niż jeden ze wstępnie zdefiniowanych typów REG_XXX , określ nowy numer typu w dużym słowie flagi ORed z FLG_ADDREG_BINVALUETYPE w małym słowie.

Dane dla takiej wartości muszą być określone w formacie binarnym jako sekwencja bajtów oddzielonych przecinkami. Na przykład aby przechowywać 16 bajtów danych nowego typu danych rejestru, takich jak 0x38, jako wpis wartości, wpis sekcji add-registry będzie podobny do następującego:

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

Ta technika może służyć do definiowania nowych typów rejestru dla wartości liczbowych, ale nie dla wartości typu REG_EXPAND_SZ, REG_MULTI_SZ, REG_NONE lub REG_SZ. Aby uzyskać więcej informacji na temat tych typów, zobacz Typy wartości rejestru.

Słowa kluczowe special value-entry-name

Specjalne słowa kluczowe są definiowane do użycia w wpisach HKR AddReg . Format wpisów, które używają tych słów kluczowych, jest następujący:

[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"] ,

Poniżej opisano wpisy HKR AddReg , które używają tych specjalnych słów kluczowych:

DeviceCharacteristics
Pozycja DeviceCharacteristics HKR AddReg określa charakterystykę urządzenia. Wartość właściwości jest wartością liczbową, która jest wynikiem użycia or na co najmniej jednej FILE_* wartości właściwości pliku, które są zdefiniowane w Wdm.h i Ntddk.h.

W inf można określić tylko następujące wartości:

#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

Aby uzyskać opis tych wartości, zobacz IoCreateDevice.

Wartości właściwości, które są określane przy użyciu wpisu DeviceCharacteristics , są ORed z wartościami określonymi w każdym wywołaniu metody IoCreateDevice , która tworzy obiekt urządzenia na stosie urządzenia. Operacja OR występuje po dodaniu wszystkich obiektów urządzenia, ale przed uruchomieniem urządzenia.

Wartość właściwości (w tym wartość zero) zastępuje wszelkie właściwości urządzeń dla całej klasy, które zostały określone w skojarzonym instalatorze klasy INF.

Aby uzyskać więcej informacji na temat charakterystyk urządzeń, zobacz Określanie właściwości urządzenia.

Devicetype
Wpis DeviceType HKR AddReg określa typ urządzenia. Typ urządzenia jest wartością liczbową stałej FILE_DEVICE_XXX zdefiniowanej w pliku Wdm.h lub Ntddk.h. Wartość flagi 0x10001 określa, że wartość typu urządzenia jest REG_DWORD. Aby uzyskać więcej informacji, zobacz Określanie typów urządzeń.

InF instalatora klasy powinien określać typ urządzenia, który ma zastosowanie do wszystkich lub prawie wszystkich urządzeń w klasie. Jeśli na przykład urządzenia w klasie mają typ FILE_DEVICE_CD_ROM, określ typ urządzenia 0x02. Jeśli urządzenie INF określa wartość parametru DeviceType, zastępuje wartość ustawioną przez instalatora klas, jeśli istnieje. Jeśli klasa lub urządzenie INF określa wartość DeviceType , menedżer PnP stosuje ten typ do obiektu urządzenia fizycznego (PDO) utworzonego przez sterownik magistrali urządzenia.

Security
Wpis Security HKR AddReg określa deskryptor zabezpieczeń dla urządzenia. Ciąg-deskryptor-zabezpieczeń jest ciągiem z tokenami wskazującymi składnik zabezpieczeń DACL (D:).

InF instalatora klas może określić deskryptor zabezpieczeń dla klasy urządzenia. InF urządzenia może określić deskryptor zabezpieczeń dla poszczególnych urządzeń, przesłaniając zabezpieczenia klasy. Jeśli klasa i/lub urządzenie INF określa ciąg deskryptora zabezpieczeń, menedżer PnP propaguje deskryptor do wszystkich obiektów urządzeń ( DO) dla urządzenia. Obejmuje to obiekt urządzenia funkcji (FDO), opcjonalne obiekty DO filtru i pdO.

Aby uzyskać informacje na temat formatu ciągów deskryptora zabezpieczeń, zobacz dokumentację zestawu SDK Microsoft Windows.

Aby uzyskać więcej informacji na temat określania deskryptorów zabezpieczeń, zobacz Tworzenie bezpiecznych instalacji urządzeń.

Górnefiltry
Wpis UpperFilters HKR AddReg określa sterownik górnego filtru PnP. Ten wpis w DDInstall. Sekcja HW definiuje co najmniej jeden sterownik filtru górnego specyficznego dla urządzenia. W sekcji ClassInstall32 ten wpis definiuje jeden lub więcej sterowników górnego filtru dla całej klasy.

LowerFilters
Wpis LowerFilters HKR AddReg określa sterownik filtru niższego pnP. Ten wpis w DDInstall. Sekcja HW definiuje co najmniej jeden sterownik niższego filtru specyficzny dla urządzenia. W sekcji ClassInstall32 ten wpis definiuje jeden lub więcej sterowników niższego filtru dla całej klasy.

Wyłączny
Wyłączny wpis HKR AddReg, jeśli istnieje i jest ustawiony na "1", określa, że urządzenie jest urządzeniem wyłącznym. W przeciwnym razie urządzenie nie jest traktowane jako wyłączne. Aby uzyskać więcej informacji, zobacz Określanie wyłącznego dostępu do obiektów urządzeń.

EnumPropPages32
Wpis EnumPropPages32 HKR AddReg określa nazwę pliku biblioteki łącza dynamicznego (DLL), który jest dostawcą strony właściwości specyficznej dla urządzenia. Określa również nazwę funkcji wywołania zwrotnego ExtensionPropSheetPageProc zaimplementowaną przez bibliotekę DLL. Aby uzyskać więcej informacji na temat stron i funkcji właściwości, zobacz zestaw SDK (Software Development Kit) Microsoft Windows dla Windows 7 i platformy .NET Framework 4.0.

Important

Zarówno nazwa biblioteki DLL, jak i funkcji ExtensionPropSheetPageProc wywołania zwrotnego musi być ujęta w znaki cudzysłowu (" ").

LocationInformationOverride
(Windows XP i nowsze wersje Windows) Wpis LocationInformationOverride HKR AddReg może służyć do określenia ciągu tekstowego opisującego lokalizację fizyczną urządzenia. Zastępuje on ciąg LocationInformation , który sterownik magistrali urządzenia dostarcza w odpowiedzi na żądanie IRP_MN_QUERY_DEVICE_TEXT .

ResourcePickerTags
Wpis ResourcePickerTags HKR AddReg określa tagi selektora zasobów dla urządzenia.

ResourcePickerExceptions
Wpis ResourcePickerExceptions HKR AddReg określa konflikty zasobów dozwolone dla urządzenia.

Examples

Dyrektywa AddReg odwołuje się do sekcji Miniport_EventLog_AddReg (SCSI) w tym przykładzie w sekcji zdefiniowanej przez składnik zapisywania INF, do których odwołuje się dyrektywa AddService w DDInstall. Sekcja usług tego 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 

Należy pamiętać, że można określić wartości flagi w formacie szesnastkowym, jak pokazano w przykładzie, lub można zdefiniować symbole zastępcze ciągu, takie jak %FLG_ADDREG_TYPE_DWORD% w sekcji [Strings] każdego pliku INF.

Informacje dodatkowe

AddInterface

AddService

BitReg

ClassInstall32

DDInstall

DDInstall. CoInstallers

DDInstall. HW

DDInstall. Interfejsy

DDInstall. Usługi

DelReg

InterfaceInstall32

Ciągi