INF DDInstall.CoInstallers 섹션
주의
Windows 11 버전 22H2부터 이 섹션을 사용하는 드라이버 패키지는 더 이상 하드웨어 개발자 센터의 서명을 받을 수 없습니다.
유니버설 드라이버 패키지 및 Windows 드라이버는 이 섹션을 사용할 수 없습니다.
이 선택적 섹션에서는 기존 디바이스 클래스 설치 관리자의 작업을 보완하기 위해 배포 미디어에 제공된 하나 이상의 디바이스별 공동 설치 관리자를 등록합니다.
[install-section-name.CoInstallers] |
[install-section-name.nt.CoInstallers] |
[install-section-name.ntx86.CoInstallers] |
[install-section-name.ntia64.CoInstallers] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64.CoInstallers] | (Windows XP and later versions of Windows)
[install-section-name.ntarm.CoInstallers] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64.CoInstallers] (Windows 10 version 1709 and later versions of Windows)
AddReg=add-registry-section[,add-registry-section]...
CopyFiles=@filename | file-list-section[,file-list-section]...
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
[DelFiles=file-list-section[,file-list-section]...]
[RenFiles=file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-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]...
제공된 공동 설치 관리자에 대한 레지스트리 정보를 저장하는 하나 이상의 INF-기록기 정의 추가 레지스트리 섹션을 참조합니다.
이러한 추가 레지스트리 섹션에 지정된 HKR은 설치 중인 디바이스의 "소프트웨어 키" 레지스트리 경로를 지정합니다. 따라서 디바이스별 공동 설치 관리자의 경우 사용자가 액세스할 수 있는 디바이스/드라이버별 "소프트웨어" 키에 CoInstallers32 값 항목을 작성하거나 수정합니다.
클래스별 공동 설치 관리자의 경우 해당 .의 콘텐츠를 수정하여 새 공동 설치 관리자를 등록합니다. CoDeviceInstallers\SetupClassGUID 하위 키. 참조된 추가 레지스트리 섹션에서 적절한 레지스트리 SetupClassGUID 하위 키의 경로를 명시적으로 지정해야 합니다.
자세한 내용은 INF AddReg 지시문을 참조 하세요.
CopyFiles=@filename | file-list-section*[,file-list-section]...
원본 공동 설치 관리자 파일을 대상 컴퓨터의 대상으로 전송합니다. 일반적으로 INF 파일의 다른 위치에서 하나 이상의 INF 작성기 정의 file-list-section을 참조합니다. 이러한 파일 목록 섹션은 원본 미디어에서 대상의 대상 디렉터리로 복사할 공동 설치 관리자 파일을 지정합니다.
그러나 공동 설치 관리자를 설치하는 시스템 INF 파일은 DDInstall에서 이 지시문을 사용하지 않습니다. CoInstallers 섹션입니다.
자세한 내용은 INF CopyFiles 지시문을 참조 하세요.
Include=filename.inf[,filename2.inf]...
이 디바이스 또는 디바이스 설정 클래스에 대한 공동 설치 관리자를 설치하는 데 필요한 섹션이 포함된 시스템 제공 INF 파일을 하나 이상 지정합니다. 이 항목이 있는 INF 파일은 일반적으로 필요를 지정해야 합니다.
Needs=inf-section-name[,inf-section-name]...
이 디바이스를 설치하는 동안 처리해야 하는 특정 섹션을 지정합니다. 일반적으로 이러한 명명된 섹션은 DDInstall입니다. Include 항목에 나열된 시스템 제공 INF 파일 내의 CoInstallers 섹션입니다. 그러나 이러한 DDInstall 내에서 참조되는 모든 섹션일 수 있습니다. 포함된 INF의 CoInstallers 섹션입니다.
DelFiles=file-list-section[,file-list-section]...
대상에서 제거할 파일을 지정하는 파일 목록 섹션을 참조합니다. 이 지시문은 거의 사용되지 않습니다.
자세한 내용은 INF DelFiles 지시문을 참조하세요.
RenFiles=file-list-section[,file-list-section]...
공동 설치 관리자 원본 파일을 대상에 복사하기 전에 이름을 바꿀 대상의 파일을 지정하는 파일 목록 섹션을 참조합니다. 이 지시문은 거의 사용되지 않습니다.
자세한 내용은 INF RenFiles 지시문을 참조하세요.
DelReg=del-registry-section[,del-registry-section]...
하나 이상의 INF-writer-define delete-registry-sections를 참조합니다. 이러한 섹션에서는 레지스트리에서 제거해야 하는 동일한 디바이스의 이전 설치에 대한 공동 설치 관리자에 대한 부실 레지스트리 정보를 지정합니다. 이러한 삭제 레지스트리 섹션에 지정된 HKR은 AddReg 항목에 대해 이미 설명한 것과 동일한 레지스트리 하위 키를 지정합니다. 이 지시문은 DDInstall에서 거의 사용되지 않습니다. CoInstallers 섹션입니다.
자세한 내용은 INF DelReg 지시문을 참조하세요.
BitReg=bit-registry-section[,bit-registry-section]...
이 항목은 이 섹션에서 유효하지만 거의 사용되지 않습니다. 이러한 비트 레지스트리 섹션에 지정된 HKR은 AddReg 항목에 대해 이미 설명한 것과 동일한 레지스트리 하위 키를 지정합니다.
자세한 내용은 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 Ini2Reg 지시문을 참조 하세요.
설명
지정된 DDInstall 섹션은 INF 파일의 제조업체 별 모델 섹션에 있는 디바이스/모델 별 항목에서 참조해야 합니다.
INF에 DDInstall이 포함된 경우 Coinstallers 섹션에는 플랫폼으로 데코레이팅되고 디코딩되지 않은 DDInstall 섹션마다 하나씩 있어야 합니다. 예를 들어 INF에 [install-section-name.ntx86] 섹션과 [install-section-name] 섹션이 포함되어 있고 디바이스별 공동 설치 관리자를 등록하는 경우 INF에는 [install-section-name.ntx86이 모두 포함되어야 합니다. Coinstallers] 섹션 및 [install-section-name. Coinstallers] 섹션. 시스템 정의 .nt, .ntx86, .ntia64, .ntamd64, .ntarm 및 .ntarm64 확장을 사용하는 방법에 대한 자세한 내용은 여러 플랫폼 및 운영 체제용 INF 파일 만들기를 참조하세요.
DDInstall의 각 지시문입니다.CoInstallers 섹션은 둘 이상의 INF 작성기 정의 섹션 이름을 참조할 수 있습니다. 그러나 명명된 각 추가 섹션은 쉼표(,)를 사용하여 다음 섹션과 구분되어야 합니다.
지시문에서 만든 각 섹션 이름은 INF 파일 내에서 고유해야 하며 섹션 이름을 정의하기 위한 일반 규칙을 따라야 합니다. 이러한 규칙에 대한 자세한 내용은 INF 파일에 대한 일반 구문 규칙을 참조 하세요.
공동 설치 관리자는 일반적으로 레지스트리에 추가 구성 정보를 쓰거나 INF를 만들 때 사용할 수 없는 동적으로 생성된 시스템별 정보가 필요한 다른 설치 작업을 수행하는 Win32 DLL입니다. 디바이스별 공동 설치 관리자는 해당 디바이스가 설치될 때 OS의 디바이스 설치 관리자 또는 적절한 클래스 설치 관리자 중 하나의 설치 작업을 보완합니다.
공동 설치 관리자를 작성하고 사용하는 방법에 대한 자세한 내용은 공동 설치 관리자 작성을 참조 하세요.
공동 설치 관리자 이미지 설치
모든 공동 설치 관리자 파일을 %SystemRoot%\system32 디렉터리에 복사해야 합니다. 다른 INF CopyFiles 작업과 마찬가지로 대상은 INF 파일의 DestinationDirs 섹션에 있는 명명된 file-list-section에 대해 dirid 값 11 또는 DefaultDestDir 항목에 대해 이 dirid 값을 제공하여 명시적으로 제어됩니다.
디바이스별 공동 설치 관리자 등록
하나 이상의 디바이스별 공동 설치 관리자를 등록하려면 레지스트리에 REG_MULTI_SZ 형식의 값 항목을 추가해야 합니다. 다음 일반 양식을 사용하여 AddReg 지시문에서 참조하는 추가 레지스트리 섹션을 지정합니다.
[DDInstall.CoInstallers_DeviceAddReg]
HKR,,CoInstallers32,0x00010000,"DevSpecificCoInstall.dll
[,DevSpecificEntryPoint]"[,"DevSpecific2CoInstall.dll
[,DevSpecific2EntryPoint]"...]
HKR 항목은 INF 파일 내에서 한 줄로 나열되며 제공된 각 디바이스별 공동 설치 관리자 DLL에는 고유한 이름이 있어야 합니다. 나열된 공동 설치 관리자가 등록되면 시스템의 디바이스 설치 관리자가 해당 디바이스에 대한 설치 프로세스의 각 후속 단계에서 호출합니다.
선택적 DevSpecificEntryPoint 를 생략하면 기본 CoDeviceInstall 루틴 이름이 공동 설치 관리자 DLL의 진입점으로 사용됩니다.
자세한 내용은 디바이스별 공동 설치 관리자 등록을 참조 하세요.
디바이스 클래스 공동 설치 관리자 등록
하나 이상의 디바이스 클래스 공동 설치 관리자에 대한 값 항목(및 설치 클래스 하위 키가 아직 없는 경우)을 레지스트리에 추가하려면 AddReg 지시문에서 참조하는 추가 레지스트리 섹션에는 다음과 같은 일반 형식이 있습니다.
[DDInstall.CoInstallers_ClassAddReg]
HKLM,System\CurrentControlSet\Control
\CoDeviceInstallers,{SetupClassGUID},
0x00010008,"DevClssCoInst.dll[,DevClssEntryPoint]"
...
이러한 추가 레지스트리 섹션의 각 항목은 INF 파일 내에서 한 줄로 나열되며 제공된 각 클래스 공동 설치 관리자 DLL에는 고유한 이름이 있어야 합니다. 제공된 공동 설치 관리자를 둘 이상의 디바이스 설치 클래스에 사용해야 하는 경우 이 추가 레지스트리 섹션에는 각각 적절한 SetupClassGUID 값이 있는 둘 이상의 항목이 있을 수 있습니다.
이러한 추가 디바이스 클래스 공동 설치 관리자는 기존 클래스 설치 관리자에 대해 이미 등록된 공동 설치 관리자를 대체해서는 안됩니다. 따라서 클래스 공동 설치 관리자는 고유한 이름이 있어야 하며 제공된 REG_MULTI_SZ 형식 값을 {SetupClassGUID} 하위 키에 이미 있는 클래스별 공동 설치 관리자 항목에 추가해야 합니다(플래그 값 0x0010008 8로 표시됨).
참고 항목
같은 이름의 공동 설치 관리자가 이미 등록된 경우 SetupAPI 함수는 값 항목에 중복 DevClssCoInstall.dll 추가하지 않습니다.
보조 디바이스 클래스 공동 설치 관리자에 대한 INF는 마우스 오른쪽 단추로 클릭 설치하거나 디바이스 설치 애플리케이션에서 만든 SetupInstallFromInfSection 호출을 통해 활성화할 수 있습니다.
예제
이 예제에서는 DDInstall을 보여줍니다.IrDA 직렬 네트워크 어댑터에 대한 CoInstallers 섹션입니다. 이러한 IrDA(직렬) NIC에 대한 시스템 제공 INF는 시스템 IrDA 클래스 설치 관리자에 공동 설치 관리자를 제공합니다.
; DDInstall section
[PNP.NT]
AddReg=ISIR.reg, Generic.reg, Serial.reg
PromptForPort=0 ; This is handled by IRCLASS.DLL
LowerFilters=SERIAL ; This is handled by IRCLASS.DLL
BusType=14
Characteristics=0x4 ; NCF_PHYSICAL
; ... PNP.NT.Services section omitted here
[PNP.NT.CoInstallers]
AddReg = ISIR.CoInstallers.reg
; ...
[IRSIR.reg]
HKR, Ndi, HelpText, 0, %IRSIR.Help%
HKR, Ndi, Service, 0, "IRSIR"
HKR, Ndi\Interfaces, DefUpper, 0, "ndisirda"
HKR, Ndi\Interfaces, DefLower, 0, "nolower"
HKR, Ndi\Interfaces, UpperRange, 0, "ndisirda"
HKR, Ndi\Interfaces, LowerRange, 0, "nolower"
[Generic.reg]
HKR,,InfraredTransceiverType,0,"0"
[Serial.reg]
HKR,,SerialBased,0, "0"
[ISIR.CoInstallers.reg]
HKR,,CoInstallers32,0x00010000,"IRCLASS.dll,IrSIRClassCoInstaller"
; ... Services and Event Log registry sections omitted here
[Strings]
; ...
IRSIR.Help = "An IrDA serial infrared device is a built-in COM port or
external transceiver which transmits infrared pulses. This NDIS
miniport driver installs as a network adapter and binds to the FastIR
protocol."
이전 PNP입니다.NT. CoInstallers 섹션은 공동 설치 관리자별 추가 레지스트리 섹션만 참조했습니다 .
이 시스템 제공 INF는 IrDA 네트워크 디바이스 집합을 설치하기 때문에 CopyFiles 지시문이 없습니다. 모든 시스템 INF 파일과 마찬가지로 이 INF 파일은 버전 섹션의 LayoutFile 항목을 사용하여 공동 설치 관리자 파일을 대상으로 전송합니다.
모든 DDInstall. IHV 또는 OEM에서 제공하는 INF의 CoInstallers 섹션에는 CopyFiles 지시문과 SourceDisksNames 및 SourceDisksFiles 섹션이 필요합니다.