INF ClassInstall32 섹션
주의
유니버설 또는 Windows 드라이버 패키지를 빌드하는 경우 이 섹션이 유효하지 않습니다. 유니버설 INF 파일 사용 및 Windows 드라이버 개발 시작을 참조하세요.
ClassInstall32 섹션은 새 클래스의 디바이스에 대한 새 디바이스 설정 클래스를 설치합니다.
[ClassInstall32] |
[ClassInstall32.nt] |
[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)
AddReg=add-registry-section[,add-registry-section]...
[AddProperty=add-property-section[,add-property-section] ...] (Windows Vista and later versions of Windows)
[Copyfiles=@filename | file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[DelProperty=del-property-section[,del-property-section] ...] (Windows Vista and later versions of Windows)
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[BitReg=bit-registry-section[,bit-registry-section]...]
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]
엔트리
AddReg=add-registry-section[,add-registry-section]...
레지스트리에 기록할 클래스별 값 항목을 포함하는 하나 이상의 명명된 섹션을 참조합니다. 일반적으로 다른 구성 요소가 나중에 레지스트리에서 검색하고 이 새 디바이스 클래스의 설치된 디바이스를 열거나 이 디바이스 설정 클래스에 대한 속성 페이지 공급자를 "설치"하는 데 사용할 수 있는 친숙한 이름을 새 디바이스 설정 클래스에 지정하는 데 사용됩니다.
모든 추가 레지스트리 섹션의 HKR 사양은 해당 클래스에 대한 설정을 포함하는 레지스트리 키를 지정합니다. 자세한 내용은 다음 설명 섹션을 참조하세요 .
자세한 내용은 INF AddReg 지시문을 참조 하세요.
AddProperty=add-property-section[,add-property-section]...
(Windows Vista 이상 버전의 Windows) 디바이스 설정 클래스에 대해 설정된 디바이스 속성을 수정하는 하나 이상의 INF 파일 섹션을 참조합니다. INF AddProperty 지시문을 사용하여 Windows Vista 이상 버전의 Windows 운영 체제에 새로운 디바이스 설정 클래스 속성을 설정해야 합니다.
이전에 Windows Server 2003, Windows XP 또는 Windows 2000에서 도입되었으며 해당 레지스트리 항목 값이 있는 디바이스 클래스 속성의 경우 INF AddReg 지시문을 계속 사용하여 디바이스 설정 클래스 속성을 설정해야 합니다. 이러한 지침은 시스템 정의 속성 및 사용자 지정 속성에 적용됩니다.
AddProperty 지시문을 사용하는 방법에 대한 자세한 내용은 INF AddProperty 지시문 및 INF DelProperty 지시문 사용을 참조하세요.
Copyfiles=@filename | file-list-section[,file-list-section]...
원본 미디어에서 대상으로 복사할 명명된 파일 하나를 지정하거나 원본 미디어의 클래스 관련 파일이 대상으로 전송되도록 지정된 하나 이상의 명명된 섹션을 참조합니다. INF의 DestinationDirs 섹션에 있는 DefaultDestDir 항목은 복사할 클래스별 단일 파일의 대상 디렉터리를 지정합니다.
자세한 내용은 INF CopyFiles 지시문을 참조 하세요.
참고 항목
디바이스 설정 클래스에 대한 시스템 제공 INF 파일은 이 섹션에서 이 지시문을 사용하지 않습니다.
DelReg=del-registry-section[,del-registry-section]...
클래스 설치 관리자를 설치하는 동안 레지스트리에서 값 항목 또는 키를 제거하도록 지정된 하나 이상의 명명된 섹션을 참조합니다.
그러나 특정 {SetupClassGUID}가 이미 설치된 클래스로 존재하는 경우 시스템 설치 코드는 이후에 버전 섹션에서 동일한 GUID 값을 지정하는 INF의 ClassInstall32 섹션을 무시합니다. 따라서 INF는 기존 클래스 설치 관리자를 대체하거나 ClassInstall32 섹션에서 해당 동작을 수정할 수 없습니다.
자세한 내용은 INF DelReg 지시문을 참조하세요.
DelProperty=del-property-section[,del-property-section]...
(Windows Vista 이상 버전의 Windows) 디바이스 설정 클래스에 대해 설정된 디바이스 속성을 삭제하는 하나 이상의 INF 파일 섹션을 참조합니다. INF DelProperty 지시문을 사용하여 Windows Vista 이상 버전의 Windows 운영 체제에 새로 추가된 디바이스 설정 클래스 속성을 삭제해야 합니다.
이전에 Windows Server 2003, Windows XP 또는 Windows 2000에서 도입되었으며 해당 레지스트리 항목 값이 있는 디바이스 클래스 속성의 경우 INF DelReg 지시문을 계속 사용하여 디바이스 설정 클래스 속성을 삭제해야 합니다. 이러한 지침은 시스템 정의 속성 및 사용자 지정 속성에 적용됩니다.
DelProperty 지시문을 사용하는 방법에 대한 자세한 내용은 INF AddProperty 지시문 및 INF DelProperty 지시문 사용을 참조하세요.
Delfiles=file-list-section[,file-list-section]...
대상에 이전에 설치한 클래스 관련 파일이 삭제를 위해 지정된 하나 이상의 명명된 섹션을 참조합니다.
자세한 내용은 INF DelFiles 지시문을 참조하세요.
Renfiles=file-list-section[,file-list-section]...
대상에서 이름을 바꿀 클래스 관련 파일이 나열되는 하나 이상의 명명된 섹션을 참조합니다.
자세한 내용은 INF RenFiles 지시문을 참조하세요.
BitReg=bit-registry-section[,bit-registry-section]...
이 섹션에서는 유효하지만 거의 사용되지 않습니다.
자세한 내용은 INF BitReg 지시문을 참조 하세요.
UpdateInis=update-ini-section[,update-ini-section]...
이 섹션에서는 유효하지만 거의 사용되지 않습니다.
자세한 내용은 INF UpdateInis 지시문을 참조 하세요.
UpdateIniFields=update-inifields-section[,update-inifields-section]...
이 섹션에서는 유효하지만 거의 사용되지 않습니다.
자세한 내용은 INF UpdateIniFields 지시문을 참조 하세요.
Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
이 섹션에서는 유효하지만 거의 사용되지 않습니다.
자세한 내용은 INF UpdateIniFields 지시문을 참조 하세요.
설명
새 사용자 지정 디바이스 설정 클래스를 설치하려면 디바이스 INF 파일에 ClassInstall32 섹션을 포함해야 합니다. 시스템 제공 디바이스 설정 클래스 또는 사용자 지정 클래스에 관계없이 설치된 클래스의 디바이스에 대한 INF 파일은 ClassInstall32 섹션을 포함하면 안 됩니다. 시스템에서 클래스가 아직 설치되지 않은 경우에만 ClassInstall32 섹션을 처리하므로 ClassInstall32 섹션을 사용하여 이미 설치된 클래스에 대한 설정을 다시 설치하거나 변경할 수 없습니다. 특히 ClassInstall32 섹션을 사용하여 클래스 공동 설치 관리자 또는 이미 설치된 클래스에 대한 클래스 필터 드라이버를 추가할 수 없습니다. 공동 설치 관리자를 설치하고 드라이버를 필터링하는 방법에 대한 자세한 내용은 공동 설치 관리자 작성 및 필터 드라이버 설치를 참조하세요.
일반적으로 ClassInstall32 섹션에는 레지스트리의 시스템 제공 SetupClassGUID 하위 키 아래에 항목을 추가하는 하나 이상의 AddReg 지시문이 있습니다. 이러한 항목에는 클래스별 "친숙한 이름", 클래스 설치 관리자 경로, 클래스 아이콘, 속성 페이지 공급자 등이 포함될 수 있습니다.
AddReg 및 CopyFiles를 제외하고 여기에 표시된 다른 지시문은 ClassInstall32 섹션에서 거의 사용되지 않습니다.
드라이버 파일의 다중 플랫폼 배포를 지원하려면 플랫폼별 ClassInstall32 섹션을 생성합니다. 예를 들어 ClassInstall32 섹션을 처리하는 모든 시스템 SetupAPI 함수는 먼저 x86 플랫폼에서 ClassInstall32.ntx86 섹션을 검색하고 ClassInstall32.ntx86 섹션을 찾을 수 없는 경우에만 분류되지 않은 ClassInstall32 섹션을 검사합니다. 시스템 정의 .nt, .ntx86, .ntia64, .ntamd64, .ntarm 및 .ntarm64 확장을 사용하는 방법에 대한 자세한 내용은 여러 플랫폼 및 운영 체제용 INF 파일 만들기를 참조하세요.
참고 항목
ClassInstall32 섹션 이름은 64비트 플랫폼의 설치에도 사용됩니다.
Windows 2000부터 설치된 모든 디바이스는 디바이스 설정 클래스와 연결됩니다. 설치할 디바이스의 INF가 새 디바이스 클래스 설치 관리자와 연결되지 않았거나 버전 섹션의 ClassGUID= 사양이 시스템 정의 설정 클래스 GUID와 일치하지 않는 경우 해당 디바이스는 이름이 "Unknown"인 디바이스 설정 클래스와 연결됩니다.
모든 디바이스 클래스 설치 관리자에 대한 INF는 일반적으로 ClassInstall32 섹션에 AddReg 지시문을 사용하여 해당 종류의 디바이스에 대한 친숙한 이름을 만드는 하나 이상의 명명된 섹션을 정의합니다. 설치 코드는 해당 (새) 설치 클래스의 첫 번째 디바이스가 설치될 때 INF 버전 섹션의 ClassGUID= 항목에 제공된 값에서 레지스트리의 적절한 위치에 SetupClassGUID 키를 자동으로 만듭니다.
INF는 ClassInstall32 섹션에서 참조하는 추가 레지스트리 섹션을 사용하여 속성 페이지 공급자를 지정하고 해당 디바이스 클래스가 사용자 인터페이스에서 처리되는 방식을 제어할 수 있습니다.
이러한 클래스별 추가 레지스트리 섹션에는 다음과 같은 일반 형식이 있습니다.
[SetupClassAddReg]
HKR,,,,%DevClassName% ; device-class friendly name
[HKR,,Installer32,,"class-installer.dll,class-entry-point"]
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
HKR,,Icon,,"icon-number"
[HKR,,SilentInstall,,1]
[HKR,,NoInstallClass,,1]
[HKR,,NoDisplayClass,,1]
시스템은 지정된 아이콘을 사용하여 사용자에게 설치 관리자를 나타냅니다.
- 아이콘 값이 양수이면 리소스에 대한 리소스 식별자를 나타냅니다. 이 리소스는 Installer32 키가 지정된 경우 클래스 설치 관리자 DLL에서 추출되거나, EnumPropPages32 키가 지정된 경우 속성 페이지 DLL에서 추출됩니다. 값 "0"은 DLL의 첫 번째 아이콘을 나타냅니다. 값 "1"이(가) 예약되어 있습니다.
- 아이콘 값이 음수이면 절대값은 SetupApi.DLL 아이콘의 리소스 식별자입니다.
클래스별 레지스트리 키에서 미리 정의된 SilentInstall, NoDisplayClass 및 NoInstallClass 부울 값 항목을 설정하면 다음과 같은 효과가 있습니다.
SilentInstall을 설정하면 해당 버전 섹션에서 동일한 ClassGuid={ClassGUID} 사양을 설정하여 이 클래스의 디바이스를 설치하는 동안 응답이 필요한 사용자에게 팝업 메시지를 보내지 않습니다. 클래스 설치 관리자의 INF 파일의 DDInstall 섹션 또는 이후에 설치된 디바이스에 대해 별도의 INF 파일에 지정되어 있는지 여부입니다. 예를 들어 CD-ROM 및 디스크 디바이스의 시스템 클래스 설치 관리자와 시스템 병렬 포트 클래스 설치 관리자는 해당 레지스트리 키에 SilentInstall을 설정합니다.
클래스별 설치 관리자가 설치하는 모든 디바이스에 대해 컴퓨터를 다시 시작해야 하는 경우 해당 INF의 클래스별 추가 레지스트리 섹션에 이 값 항목이 있을 수 없습니다.
NoDisplayClass를 설정하면 장치 관리자 이 클래스의 모든 디바이스에 대한 사용자 표시가 표시되지 않습니다. 예를 들어 프린터 및 네트워크 드라이버(클라이언트, 서비스 및 프로토콜 포함)에 대한 시스템 클래스 설치 관리자는 해당 레지스트리 키에 NoDisplayClass를 설정합니다.
NoInstallClass를 설정하면 이 유형의 디바이스가 최종 사용자가 수동으로 설치할 필요가 없음을 나타냅니다. 예를 들어 PnP(전용 플러그 앤 플레이) 디바이스에 대한 시스템 클래스 설치 관리자는 해당 레지스트리 키에 NoInstallClass를 설정합니다.
ClassInstall32 섹션에는 설치 클래스의 디바이스에 대한 DeviceType, DeviceCharacteristics 및 보안을 설정하는 AddReg 지시문이 포함될 수 있습니다. 자세한 내용은 INF AddReg 지시문을 참조하세요.
예제
이 예제에서는 ClassInstall32 섹션을 AddReg 지시문과 함께 참조하는 명명된 섹션과 함께 보여 줍니다.
[ClassInstall32]
AddReg=example_class_addreg
[example_class_addreg]
HKR,,,,%ClassName%
HKR,,Icon,,"-1"
반면, 이 예제에서는 클래스별 속성 페이지 공급자를 설정합니다. 또한 이 INF는 클래스 키의 SilentInstall 및 NoInstallClass 값 항목을 TRUE(1)로 설정합니다.
[example_class_addreg]
HKR,,,,%ClassName%
HKR,,EnumPropPages32,,"ExampleBinary.Dll,ExamplePropPageProvider"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,Icon,,"101"