다음을 통해 공유


INF AddReg 지시문

AddReg 지시문은 레지스트리 정보를 수정하거나 만드는 데 사용되는 하나 이상의 INF-writer-defined _add-registry-sections*를 참조합니다.

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

add-registry-section 에는 다음을 수행하는 항목이 있을 수 있습니다.

  • 초기 값 항목이 있는 새 키를 레지스트리에 추가합니다.

  • 기존 레지스트리 키에 새 값 항목을 추가합니다.

  • 레지스트리에서 특정 키의 기존 값 항목을 수정합니다.

AddReg 지시문에서 참조하는 명명된 각 add-registry-section의 형식은 다음과 같습니다.

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

add-registry-section은 각각 별도의 줄에 임의의 수의 항목을 포함할 수 있습니다. INF에는 하나 이상의 선택적 add-registry-section.security 섹션이 포함될 수 있으며, 각각 명명된 add-registry-section 내에 설명된 모든 레지스트리 값에 적용되는 보안 설명자를 지정합니다.

항목

reg-root
이 항목에 제공된 다른 값에 대한 레지스트리 트리의 루트를 식별합니다. 값은 다음 중 하나일 수 있습니다.

Hkcr
HKEY_CLASSES_ROOT 약어

HKCU
HKEY_CURRENT_USER 약어

HKLM
HKEY_LOCAL_MACHINE 약어

HKU
HKEY_USERS 약어

HKR
이 약어를 사용하여 지정된 키가 다음 표와 같이 이 AddReg 지시문이 표시되는 INF 섹션과 연결된 레지스트리 키를 기준으로 하는 상대 루트입니다.

AddReg 지시문을 포함하는 INF 섹션 HKR에서 참조하는 레지스트리 키
INF DDInstall 섹션 디바이스의 소프트웨어 키
INF DDInstall. HW 섹션 디바이스의 하드웨어 키
INF [service-install-section] 섹션 서비스
INF [event-log-install] 섹션 EventLog
INF [add-interface-section] 섹션 디바이스 인터페이스의 레지스트리 키

참고

INF DefaultInstall 섹션에서 참조하는 추가 레지스트리 섹션에서HKR을 사용할 수 없습니다.

HKEY_LOCAL_MACHINE 루트 아래에 저장된 드라이버 정보에 대한 자세한 내용은 디바이스 및 드라이버에 대한 레지스트리 트리 및 키를 참조하세요.

하위
INF의 Strings 섹션에 정의된 %strkey% 토큰 또는 지정된 reg-root(key1\key2\key3...) 아래의 레지스트리 경로로 구성된 이 선택적 값은 다음 중 하나를 지정합니다.

  • 지정된 레지스트리 경로의 끝에 레지스트리에 추가할 새 하위 키입니다.
  • 이 항목에 지정된 추가 값이 기록되는 기존 하위 키입니다(지정된 하위 키의 기존 명명된 값 항목 값을 대체할 수 있음).
  • 레지스트리에 추가될 새 하위 키와 초기 값 항목이 모두 있습니다.

value-entry-name
이 선택적 값은 지정된(기존) 하위 키 의 기존 값 항목 이름을 지정하거나 지정된 하위 키에 추가할 새 값 항목의 이름을 만듭니다( 이미 존재하든 레지스트리에 추가할 새 키인지 여부). 이 값은 "따옴표 붙은 문자열" 또는 INF의 문자열 섹션에 정의된 %strkey% 토큰으로 표현할 수 있습니다 . 문자열 형식 값에 대해 생략된 경우 value-entry-name 은 이 키의 기본 "명명되지 않은" 값 항목입니다.

운영 체제는 일부 시스템 정의 특수 value-entry-name 키워드를 지원합니다. 자세한 내용은 이 설명 섹션의 끝을 참조하세요.

flags
시스템 정의 낮은 단어와 높은 단어 플래그 값의 ORed 비트 마스크로 표현되는 이 선택적 16진수 값은 값 항목에 대한 데이터 형식을 정의하고/또는 추가 레지스트리 작업을 제어합니다.

이러한 각 플래그에 대한 비트 마스크 값은 다음과 같습니다.

0x00000001 (FLG_ADDREG_BINVALUETYPE)
지정된 값은 "원시" 데이터입니다. (이 값은 FLG_ADDREG_TYPE_BINARY 동일합니다.)

0x00000002 (FLG_ADDREG_NOCLOBBER)
지정된 값이 기존 값 항목의 값을 대체하지 못하도록 합니다.

0x00000004 (FLG_ADDREG_DELVAL)
레지스트리에서 지정된 하위 키를 삭제하거나 지정된 레지스트리 하위 키에서 지정된 value-entry-name을 삭제합니다.

0x00000008 (FLG_ADDREG_APPEND)
지정된 값을 기존 명명된 항목의 값에 추가합니다. 이 플래그는 FLG_ADDREG_TYPE_MULTI_SZ 설정된 경우에만 유효합니다. 지정된 문자열 값이 이미 있는 경우 추가되지 않습니다.

0x00000010 (FLG_ADDREG_KEYONLY)
지정된 하위 키를 만들지만 제공된 value-entry-name 및/또는 값은 무시합니다.

0x00000020 (FLG_ADDREG_OVERWRITEONLY)
지정된 value-entry-name이 지정된 하위 키에 이미 있는 경우에만 제공된 으로 다시 설정합니다.

0x00001000 (FLG_ADDREG_64BITKEY)
(Windows XP 이상 버전의 Windows.) 64비트 레지스트리에서 지정된 변경 사항을 만듭니다. 지정하지 않으면 네이티브 레지스트리가 변경됩니다.

0x00002000 (FLG_ADDREG_KEYONLY_COMMON)
(Windows XP 이상 버전의 Windows.) 이는 FLG_ADDREG_KEYONLY 동일하지만 INF DelReg 지시문del-registry-section에서도 작동합니다.

0x00004000 (FLG_ADDREG_32BITKEY)
(Windows XP 이상 버전의 Windows.) 32비트 레지스트리에서 지정된 변경 사항을 만듭니다. 지정하지 않으면 네이티브 레지스트리가 변경됩니다.

0x00000000 (FLG_ADDREG_TYPE_SZ)
지정된 값 항목 및/또는 값은 REG_SZ 형식입니다.

참고

이 값은 지정된 값 항목의 기본 형식이므로 이 형식의 값 항목에서 작동하는 add-registry-section모든 reg-root= 줄에서 플래그 값을 생략할 수 있습니다.

0x00010000 (FLG_ADDREG_TYPE_MULTI_SZ)
지정된 값 항목 및/또는 값은 REG_MULTI_SZ 레지스트리 유형입니다. 다음 값 필드는 쉼표로 구분된 문자열 목록일 수 있습니다. 이 사양에는 지정된 문자열 값에 대한 NULL 종결자가 필요하지 않습니다.

0x00020000 (FLG_ADDREG_TYPE_EXPAND_SZ)
지정된 value-entry-name 및/또는 REG_EXPAND_SZ 레지스트리 유형입니다.

0x00010001 (FLG_ADDREG_TYPE_DWORD)
지정된 value-entry-name 및/또는 REG_DWORD 레지스트리 유형입니다.

0x00020001 (FLG_ADDREG_TYPE_NONE)
지정된 value-entry-name 및/또는 REG_NONE 레지스트리 유형입니다.

value
필요에 따라 지정된 레지스트리 키에 추가할 지정된 value-entry-name 에 대한 새 값을 지정합니다. 이러한 은 기존 키의 기존 명명된 값 항목에 대한 "대체" 값, 기존 키의 기존 명명된 REG_MULTI_SZ 형식 값 항목 에 추가할 값( 플래그0x00010008), 기존 키에 기록할 새 값 항목 또는 레지스트리에 추가할 새 하위 키 의 초기 값 항목일 수 있습니다.

이러한 의 식은 다음과 같이 플래그에 지정된 레지스트리 유형에 따라 달라집니다.

  • 레지스트리 문자열 형식 값은 "따옴표 붙은 문자열" 또는 INF 파일의 Strings 섹션에 정의된 %strkey% 토큰으로 표현할 수 있습니다. 이러한 INF 지정 값은 각 문자열의 끝에 NULL 종결자를 포함할 필요가 없습니다.

  • 레지스트리 숫자 형식 값은 16진수(0x 표기법 사용) 또는 10진수로 표현할 수 있습니다.

security-descriptor-string
명명된 add-registry-section에서 만든 모든 레지스트리 항목에 적용할 보안 설명자를 지정합니다. security-descriptor-string은 DACL(D:) 보안 구성 요소를 나타내는 토큰이 있는 문자열입니다.

add-registry-section.security 섹션을 지정하지 않으면 레지스트리 항목은 부모 키의 보안 설정을 상속합니다.

add-registry-section.security 섹션을 지정한 경우 디바이스 및 시스템 서비스 팩의 설치 및 업그레이드가 발생할 수 있도록 다음 ACE를 포함해야 합니다.

  • (A;; 조지아;;; SY) - 로컬 시스템에 대한 모든 액세스 권한을 부여합니다.
  • (A;; 조지아;;; BA) - 기본 제공 관리자에게 모든 액세스 권한을 부여합니다.

권한이 없는 사용자에게 쓰기 권한을 부여하는 ACE 문자열을 지정하지 마세요.

보안 설명자 문자열에 대한 자세한 내용은 보안 설명자 정의 언어(Windows)를 참조하세요. 보안 설명자 문자열 형식에 대한 자세한 내용은 보안 설명자 정의 언어(Windows)를 참조하세요.

보안 설명자를 지정하는 방법에 대한 자세한 내용은 보안 디바이스 설치 만들기를 참조하세요.

설명

AddReg 지시문은 위의 공식 구문 문에 표시된 섹션 아래에 지정할 수 있습니다. 이 지시문은 다음 INF 작성기 정의 섹션 아래에 지정할 수도 있습니다.

추가 레지스트리 섹션 이름은 INF 파일에 고유해야 하지만 동일한 INF의 다른 섹션에서 AddReg 지시문에서 참조할 수 있습니다. 각 섹션 이름은 INF 파일에 대한 일반 구문 규칙에 설명된 섹션 이름을 정의하기 위한 일반 규칙을 따라야 합니다.

참고

플래그 값에서 낮은 단어의 하위 비트는 문자와 이진 데이터를 구분합니다.

미리 정의된 REG_XXX 형식 중 하나가 아닌 여러 레지스트리 형식을 나타내려면 ORed 플래그 의 상위 단어에 FLG_ADDREG_BINVALUETYPE 낮은 단어로 새 형식 번호를 지정합니다.

이러한 의 데이터는 쉼표로 구분된 바이트 시퀀스로 이진 형식으로 지정해야 합니다. 예를 들어 0x38 같은 새 레지스트리 데이터 형식의 16바이트 데이터를 값 항목으로 저장하려면 추가 레지스트리 섹션 항목은 다음과 같습니다.

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

이 기술은 숫자 값에 대한 새 레지스트리 형식을 정의하는 데 사용할 수 있지만 REG_EXPAND_SZ, REG_MULTI_SZ, REG_NONE 또는 REG_SZ 형식의 값에는 사용할 수 없습니다. 이러한 형식에 대한 자세한 내용은 레지스트리 값 형식을 참조하세요.

특수 value-entry-name 키워드

특수 키워드는 HKR AddReg 항목에서 사용하도록 정의됩니다. 이러한 키워드를 사용하는 항목의 형식은 다음과 같습니다.

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

다음은 이러한 특수 키워드를 사용하는 HKR AddReg 항목에 대해 설명합니다.

DeviceCharacteristics
DeviceCharacteristics HKR AddReg 항목은 디바이스의 특성을 지정합니다. 특성 값은 Wdm.h 및 Ntddk.h에 정의된 하나 이상의 FILE_* 파일 특성 값에서 OR을 사용한 결과인 숫자 값입니다.

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

이러한 값에 대한 설명은 IoCreateDevice를 참조하세요.

DeviceCharacteristics 항목을 사용하여 지정하는 특성 값은 디바이스 스택에 디바이스 개체를 만드는 IoCreateDevice에 대한 각 호출에서 지정된 값과 함께 ORed됩니다. OR 작업은 모든 디바이스 개체가 추가된 후 디바이스가 시작되기 전에 발생합니다.

특성 값(값 0 포함)은 연결된 클래스 설치 관리자 INF에 지정된 클래스 전체 디바이스 특성을 재정의합니다.

디바이스 특성에 대한 자세한 내용은 디바이스 특성 지정을 참조하세요.

DeviceType
DeviceType HKR AddReg 항목은 디바이스에 대한 디바이스 유형을 지정합니다. device-type은 Wdm.h 또는 Ntddk.h에 정의된 FILE_DEVICE_XXX 상수의 숫자 값입니다. 0x10001 플래그 값은 디바이스 형식 값이 REG_DWORD 지정합니다. 자세한 내용은 디바이스 유형 지정을 참조하세요.

클래스 설치 관리자 INF는 클래스의 모든 디바이스 또는 거의 모든 디바이스에 적용되는 디바이스 유형을 지정해야 합니다. 예를 들어 클래스의 디바이스가 FILE_DEVICE_CD_ROM 형식인 경우 디바이스 형식 의 0x02 지정합니다. 디바이스 INF가 DeviceType에 대한 값을 지정하는 경우 클래스 설치 관리자가 설정한 값(있는 경우)을 재정의합니다. 클래스 또는 디바이스 INF가 DeviceType 값을 지정하는 경우 PnP 관리자는 해당 형식을 디바이스의 버스 드라이버에서 만든 PDO(물리적 디바이스 개체) 에 적용합니다.

보안
보안 HKR AddReg 항목은 디바이스에 대한 보안 설명자를 지정합니다. security-descriptor-string은 DACL(D:) 보안 구성 요소를 나타내는 토큰이 있는 문자열입니다.

클래스 설치 관리자 INF는 디바이스 클래스에 대한 보안 설명자를 지정할 수 있습니다. 디바이스 INF는 개별 디바이스에 대한 보안 설명자를 지정하여 클래스에 대한 보안을 재정의할 수 있습니다. 클래스 및/또는 디바이스 INF가 security-descriptor-string을 지정하는 경우 PnP 관리자는 설명자를 디바이스의 모든 디바이스 개체( DO)에 전파합니다. 여기에는 FDO(함수 디바이스 개체), 선택적 필터 DO 및 PDO가 포함됩니다.

보안 설명자 문자열 형식에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

보안 설명자를 지정하는 방법에 대한 자세한 내용은 보안 디바이스 설치 만들기를 참조하세요.

Upperfilters
UpperFilters HKR AddReg 항목은 PnP 상위 필터 드라이버를 지정합니다. DDInstall의 이 항목입니다. HW 섹션은 하나 이상의 디바이스별 상위 필터 드라이버를 정의합니다. ClassInstall32 섹션에서 이 항목은 하나 이상의 클래스 전체 상위 필터 드라이버를 정의합니다.

LowerFilters
LowerFilters HKR AddReg 항목은 PnP 하위 필터 드라이버를 지정합니다. DDInstall의 이 항목입니다. HW 섹션은 하나 이상의 디바이스별 하위 필터 드라이버를 정의합니다. ClassInstall32 섹션에서 이 항목은 하나 이상의 클래스 전체 하위 필터 드라이버를 정의합니다.

전용
전용 HKR AddReg 항목이 존재하고 "1"로 설정된 경우 디바이스가 전용 디바이스임을 지정합니다. 그렇지 않으면 디바이스가 배타적인 것으로 처리되지 않습니다. 자세한 내용은 디바이스 개체에 대한 단독 액세스 지정을 참조하세요.

EnumPropPages32
EnumPropPages32 HKR AddReg 항목은 디바이스별 속성 페이지 공급자인 DLL(동적 연결 라이브러리) 파일의 이름을 지정합니다. 또한 DLL에서 구현하는 ExtensionPropSheetPageProc 콜백 함수의 이름을 지정합니다. 속성 페이지 및 기능에 대한 자세한 내용은 Windows 7 및 .NET Framework 4.0용 Microsoft Windows SDK(소프트웨어 개발 키트)를 참조하세요.

중요

DLL 및 ExtensionPropSheetPageProc 콜백 함수의 이름은 모두 따옴표(" ")로 묶어야 합니다.

LocationInformationOverride
(Windows XP 이상 버전의 Windows) LocationInformationOverride HKR AddReg 항목을 사용하여 디바이스의 물리적 위치를 설명하는 텍스트 문자열을 지정할 수 있습니다. IRP_MN_QUERY_DEVICE_TEXT 요청에 대한 응답으로 디바이스의 버스 드라이버가 제공하는 LocationInformation 문자열을 재정의합니다.

ResourcePickerTags
ResourcePickerTags HKR AddReg 항목은 디바이스에 대한 리소스 선택기 태그를 지정합니다.

ResourcePickerExceptions
ResourcePickerExceptions HKR AddReg 항목은 디바이스에 허용되는 리소스 충돌을 지정합니다.

예제

AddReg 지시문은 DDInstallAddService 지시문에서 참조하는 INF-writer-defined 섹션 아래 이 예제의 SCSI(SCSI) Miniport_EventLog_AddReg 섹션을 참조했습니다. 이 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 

예제와 같이 플래그 값을 16진수 형식으로 지정하거나 각 INF 파일의 [Strings] 섹션과 같은 %FLG_ADDREG_TYPE_DWORD% 문자열 자리 표시자를 정의할 수 있습니다.

추가 정보

AddInterface

AddService

BitReg

ClassInstall32

DDInstall

DDInstall. CoInstallers

DDInstall. Hw

DDInstall. 인터페이스

DDInstall. 서비스

DelReg

InterfaceInstall32

문자열