INF 파일에서 KMDF 공동 설치 관리자 지정

참고

드라이버가 Windows 10 대상으로만 지정하는 경우 WDF를 재배포하거나 드라이버 패키지에 Coinstaller를 제공할 필요가 없습니다. Windows 10 대상으로 지정하려면 다음을 수행합니다.

  1. Visual Studio의 프로젝트 설정 속성 페이지의 드라이버 설정 ->대상 OS 버전에서 Windows 10 이상을 선택합니다. 이는 .vcxproj 파일에 다음을 추가하는 것과 같습니다.
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
  1. INF Manufacturer 섹션에서 다음과 같이 10.0을 대상 OS 버전으로 지정합니다.
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0

드라이버 패키지에 공동 설치 관리자를 포함하는 경우 드라이버의 INF 파일에 제공해야 하는 섹션에 대한 자세한 내용은 이 항목을 참조하세요. 이 정보는 Microsoft에서 제공하는 .msu 재배포 가능 파일을 호출하는 사용자 고유의 설치 애플리케이션을 제공하는 경우에는 적용되지 않습니다.

공동 설치 관리자에 대한 INF 파일 섹션

드라이버의 INF 파일에는 INF DDInstall이 포함되어야 합니다. 공동 설치 관리자를 설치하는 CoInstallers 섹션입니다. 예를 들어 이 섹션의 이름은 MyDevice.ntx86.CoInstallers일 수 있습니다. INF 파일에서 공동 설치 관리자를 지정하는 방법에 대한 자세한 내용은 INF DDInstall.CoInstallers 섹션을 참조하세요.

또한 드라이버의 INF 파일에는 INF DDInstall이 포함되어야 합니다. 공동 설치 관리자가 설치한 후 읽는 Wdf 섹션입니다. 예를 들어 이 섹션의 이름은 MyDevice.ntx86.Wdf일 수 있습니다. 프레임워크의 공동 설치 관리자가 설치되면 드라이버를 설치하는 동안 이 섹션을 읽습니다.

INF DDInstall입니다. Wdf 섹션에는 다음 지시문이 포함되어 있습니다.

  • KmdfService =DriverService,Wdf-install-section

DriverService 는 운영 체제가 드라이버의 커널 모드 서비스에 할당할 이름을 나타내고 , Wdf-install-section 은 공동 설치 관리자가 드라이버에 대한 정보를 얻기 위해 읽는 INF 섹션의 이름을 나타냅니다.

Wdf-install-section에서 식별하는 INF 섹션에는 다음 지시문이 포함되어야 합니다.

  • KmdfLibraryVersion =WdfLibraryVersion

WdfLibraryVersion 은 "1.0" 또는 "1.11"과 같은 라이브러리 버전 번호를 나타냅니다.

예를 들어 다음 INF DDInstall입니다. Wdf 섹션은 Echo_wdfsectWdf-install-section 이름으로 지정합니다.

[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0

INX 파일 및 Stampinf 도구를 사용하여 여러 버전의 프레임워크에 대해 여러 INF 파일을 만들지 않도록 방지할 수 있습니다. INX 파일에 대한 자세한 내용은 INX 파일을 사용하여 INF 파일 만들기를 참조하세요.

샘플 INFDDInstall. CoInstallers 및DDInstall. Wdf 섹션

다음 코드 예제에서는 INF DDInstall을 만드는 방법을 보여줍니다. CoInstallers 섹션 및 INF DDInstall. PnP 드라이버에 대한 INF 파일의 Wdf 섹션입니다. 이 예제에서는 MYDevice.inf 라는 INF 파일을 만드는 방법을 보여 하며 ECHO 샘플 드라이버의 Echo.inf 파일을 기반으로 합니다. Echo 샘플 드라이버는 WDK의 샘플 디렉터리에 있습니다.

MyDevice.inf를 만들려면 Echo.inf의 모든 ECHO_Device 부분 문자열을 제품에 적합한 이름으로 변경해야 합니다. 다음 코드 예제에서는 MyDevice를 사용합니다.

Echo.inf 샘플에서 사용하는 섹션 레이아웃을 일치시키려고 시도해야 합니다. 즉, 가능하면 공동 설치 관리자 관련 섹션을 함께 유지하여 잘라내기 및 붙여넣기 오류를 보다 쉽게 발견할 수 있습니다.

echo.inf를 수정하기 전에 공동 설치 관리자를 설치하는 섹션은 다음과 같습니다.

=============== Top of Echo.inf ====================
....
....
[DestinationDirs]
DefaultDestDir = 12
ECHO_Device_CoInstaller_CopyFiles = 11
....
....
;
;--- ECHO_Device Co-installer installation ------
;
[ECHO_Device.NT.CoInstallers]
AddReg=ECHO_Device_CoInstaller_AddReg
CopyFiles=ECHO_Device_CoInstaller_CopyFiles

[ECHO_Device_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01000.dll,WdfCoInstaller"

[ECHO_Device_CoInstaller_CopyFiles]
WdfCoInstaller01000.dll

[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0

===============  End of Echo.inf ===============

모든 ECHO_Device 부분 문자열을 변경한 후 MyDevice.inf 파일이 다음과 같이 표시됩니다.

=============== Top of MyDevice.inf ===============
....
....
[DestinationDirs]
DefaultDestDir = 12
MyDevice_CoInstaller_CopyFiles = 11
....
....
;
;--- MyDevice Co-installer installation ------
;
[MyDevice.NT.CoInstallers]
AddReg=MyDevice_CoInstaller_AddReg
CopyFiles=MyDevice_CoInstaller_CopyFiles

[MyDevice_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01000.dll,WdfCoInstaller"

[MyDevice_CoInstaller_CopyFiles]
WdfCoInstaller01000.dll

[MyDevice.NT.Wdf]
KmdfService = MyDevice, MyDevice_wdfsect
[MyDevice_wdfsect]
KmdfLibraryVersion = 1.0
....
....
=============== End of MyDevice.inf ===============