드라이버 패키지에서 공동 설치 관리자 제거
주의
2023년 1월부터 공동 설치 관리자가 포함된 드라이버 패키지는 더 이상 하드웨어 개발자 센터 포털에서 서명되지 않습니다. 요구 사항에 대한 자세한 내용은 Windows 하드웨어 호환성 프로그램 사양 및 정책, 특히 버전 22H2 정책, Device.DevFund.INF.Declarative 섹션을 참조하세요.
이 페이지에서는 공동 설치 관리자가 드라이버 패키지에 있는 일반적인 이유를 다루고 공동 설치 관리자 없이 동일한 작업을 수행하는 메커니즘을 제공합니다.
WDF 및 WinUSB 공동 설치 관리자
Windows 10 이상을 실행하는 시스템에서는 WDF 공동 설치 관리자 및 WinUSB 공동 설치 관리자가 필요하지 않습니다. 추가 작업 없이 WDF 공동 설치 관리자 참조를 제거할 수 있습니다. WinUSB 공동 설치 관리자 참조를 제거할 수 있으며, Include 및 Needs 지시문을 사용하여 드라이버 패키지 INF에서 WinUSB를 참조해야 합니다.
사용자 인터페이스를 제공하는 소프트웨어 설치
설치하는 동안 애플리케이션을 시작하는 대신 드라이버 패키지 INF의 DDInstall.Software 섹션에서 AddSoftware 지시문을 사용하여 설치된 유니버설 Windows 플랫폼 애플리케이션을 제공합니다.
자세한 내용은 UWP(유니버설 Windows 플랫폼) 앱과 드라이버 페어링을 참조하세요. AddSoftware 지시문은 Windows 10 버전 1703 이상 버전의 Windows에서 지원됩니다.
자세한 내용은 아래의 관련 소프트웨어 설치를 참조하세요.
디바이스 이름 설정
INF 파일
드라이버 패키지 INF는 다음과 같이 디바이스 이름을 설정할 수 있습니다.
[DDInstall.HW]
AddReg = FriendlyName_AddReg
[FriendlyName_AddReg]
HKR,,FriendlyName,, "Device Friendly Name"
런타임
다음 API 중 하나를 사용하여 DEVPKEY_Device_FriendlyName 속성을 설정하여 IRP 시작 또는 PrepareHardware 단계 중에 드라이버에서 이름을 설정할 수 있습니다.
기타 디바이스 설정/구성:
가능하면 드라이버는 드라이버 시작 IRP 또는 PrepareHardware 단계 내에서 디바이스 설정 및 구성을 변경할 수 있습니다. 런타임에 상태를 수정할 때 드라이버는 드라이버 패키지 격리 요구 사항을 따라 야 합니다. 이러한 요구 사항에는 드라이버 구성 및 상태 레이아웃에 대한 지침이 포함되어 있으며, 외부 변경에 대한 복원력을 향상시키고, 업데이트하기 쉽고, 설치가 더 간단해지도록 하여 드라이버의 미래 방지를 지원합니다.
드라이버 자체 내에서 설정할 수 없는 설정 및 구성의 경우 드라이버 패키지에는 설정 및 구성을 변경하는 사용자 모드 런타임 구성 요소도 포함될 수 있습니다. 사용자 연결 앱 또는 구성을 업데이트하는 Win32 서비스일 수 있습니다. 디바이스에 사용할 사용자 모드 소프트웨어를 포함하는 방법에 대한 자세한 내용은 구성 요소 INF 파일 사용을 참조 하세요.
서비스와 같은 영구 구성 요소를 사용하는 경우 해당 기능이 필요하고 드라이버 패키지 INF 내에서 또는 드라이버 자체 내에서와 같이 리소스 집약적인 방식으로 수행할 수 없는지 확인합니다. 관련 디바이스가 연결된 경우에만 서비스가 실행되는지 확인하는 방법에 대한 자세한 내용은 서비스 트리거, 디바이스와 상호 작용하는 Win32 서비스 및 디바이스 인터페이스 알림 등록을 참조하세요. 또한 서비스는 API 유효성 검사기 전달과 같은 최신 요구 사항을 충족해야 합니다.
연결된 소프트웨어 설치
DCH 드라이버 요구 사항의 '구성 요소화' 부분에는 연결된 소프트웨어에서 디바이스 드라이버의 설치를 분리하는 메커니즘인 SoftwareComponent라는 개념이 도입되었습니다. INF에서 소프트웨어 구성 요소를 만들면 소프트웨어 구성 요소에 매핑되는 자식 디바이스가 자동으로 만들어집니다. 이 자식 디바이스는 부모 디바이스에 연결된 소프트웨어를 설치하기 위해 존재합니다. 이 소프트웨어는 기본 디바이스 및 드라이버와 독립적으로 설치 및 업데이트할 수 있습니다.
SoftwareComponent 드라이버 패키지 INF 내에서 소프트웨어를 설치하는 데 권장되는 메커니즘은 AddSoftware 지시문을 사용하는 것입니다. 그러면 Windows 스토어에서 소프트웨어 다운로드 및 설치가 트리거됩니다.
드라이버 및 디바이스 간 종속성
디바이스 시작/열거형 순서 종속성
가능한 한 디바이스 간 종속성 또는 주문 시작 요구 사항을 피해야 합니다.
ACPI 열거형 디바이스의 경우 ACPI 펌웨어에서 _DEP(종속성 개체)를 사용하여 디바이스 시작 순서를 적용할 수 있습니다. 자세한 내용은 장치 관리 네임스페이스를 참조하세요.
드라이버는 IRP_MN_QUERY_DEVICE_RELATIONS IRP에 응답하여 제거 관계와 같은 디바이스 간의 관계를 정의할 수 있습니다. 자세한 내용은 IRP_MN_QUERY_DEVICE_RELATIONS 참조하세요.
드라이버 패키지 설치 종속성
CopyInf 지시문을 사용하여 다른 드라이버와 동일한 설치 API 호출 중에 추가 드라이버 패키지를 설치할 수도 있습니다. 설치 API에 전달된 드라이버 패키지는 CopyInf 참조 드라이버 패키지 전에 설치되지만 CopyInf에서 참조하는 드라이버 패키지는 특정 순서로 설치되지 않습니다.
단일 드라이버 패키지에 번들로 제공되는 여러 공급업체의 구성 요소 구성
드라이버 패키지는 확장 INF라는 드라이버 패키지 INF 유형을 지원합니다. 이 파일은 "기본" 드라이버 패키지 INF의 기능을 보강하고 확장하도록 특별히 설계된 INF 파일입니다. 확장은 디바이스에 대한 함수 드라이버를 제공하지 않을 수 있지만, 그렇지 않으면 다른 지시문을 사용하거나 디바이스에 대한 다른 설정을 작성할 수 있습니다. 드라이버 설치 중에 드라이버 순위를 사용하여 단일 기본 드라이버 패키지 INF를 선택하여 디바이스에 대한 기능을 제공한 다음, 디바이스에 대한 확장 INF가 선택됩니다. 자세한 내용은 확장 INF 파일 사용을 참조 하세요.
확장 드라이버 패키지 INF를 활용하기 위한 일반적인 패러다임은 하드웨어 제조업체가 기본 드라이버 패키지 INF를 제공하고 시스템 내에서 해당 부분을 해당 시스템에 맞게 사용자 지정하는 확장 드라이버 패키지 INF를 만드는 OEM 배송을 위한 것입니다.
펌웨어 업데이트 설치/오케스트레이션
업데이트되는 디바이스의 특성에 따라 다른 펌웨어 업데이트 메커니즘을 사용하는 것이 좋습니다. 다음 각각을 사용하여 Windows 업데이트 통해 펌웨어 업데이트를 제공하고 설치할 수 있습니다.
이동식이 아닌
UEFI 펌웨어 업데이트 플랫폼은 시스템 펌웨어와 같이 제거할 수 없는 시스템의 구성 요소를 업데이트하도록 설계되었습니다. 자세한 내용은 UEFI 펌웨어 업데이트 플랫폼을 참조 하세요.
제거 가능
HID 또는 USB 디바이스와 같은 이동식 디바이스의 경우 CFU 모델은 안전한 펌웨어 업데이트를 허용합니다. 자세한 내용은 구성 요소 펌웨어 업데이트를 참조하세요.
사용자 지정 구현
또는 드라이버의 재량에 따라 디바이스의 펌웨어를 업데이트하는 사용자 지정 드라이버를 작성할 수 있습니다. 자세한 내용은 사용자 지정 펌웨어 업데이트 드라이버를 참조 하세요.