중요합니다
Windows 11 버전 22H2용 WDK부터 WDF 재배포 가능 공동 설치 관리자는 더 이상 지원되지 않습니다. 이 변경을 우회하는 방법을 알아보시려면 WDK의 알려진 문제 문서에서 WDF 재배포 공동 설치 관리자가 제대로 작동하지 않습니다를 참조하세요.
PDO(물리적 디바이스 개체)가 하나뿐인 다기능 프린터에 검사 기능을 설치하려면 특별한 절차가 필요합니다. 디바이스가 프린터로 자신을 식별하는 경우 프린터의 INF 파일은 검사 기능을 설치하기 위해 WIA 공동 설치 관리자를 호출할 수 있습니다.
가능한 경우 다기능 프린터의 각 논리적 함수에는 자체 PDO가 있어야 합니다. 디바이스의 여러 함수를 단일 PDO와 연결하지 않아야 합니다.
WIA 공동 설치 관리자를 디바이스의 공동 설치 관리자로 등록하는 경우 설치 프로그램은 항상 WIA 공동 설치 관리자를 호출하여 프린터 클래스 설치 관리자 전후에 설치를 처리합니다. WIA 공동 설치 관리자는 프린터의 PDO에 Image 클래스 디바이스 인터페이스를 만들고 모든 필수 정보를 디바이스 인터페이스 레지스트리 키에 저장합니다. 이 키의 레지스트리에 있는 현재 위치는 다음과 같습니다.
HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{6bdd1fc6-810f-11d0-bec7-08002be2092f}\<장치 상징 링크>
이 키는 향후 운영 체제 버전에서 이 위치에 유지되도록 보장되지 않습니다. 이 키를 열려면 SetupDiOpenDeviceInterfaceRegKey를 호출합니다.
WIA 서비스는 모든 이미지 클래스 PDO 및 디바이스 인터페이스를 열거합니다. 따라서 새로 만든 디바이스 인터페이스는 WIA 디바이스로 열거됩니다.
Windows DDK에는 단일 PDO만 있는 다기능 프린터에 검색 기능을 설치하는 예제 INF가 함께 제공됩니다. 이 파일의 이름은 mfpoemprn.inf이며 \src\print\infs 디렉터리에 있습니다.
MFP에 검사 기능을 설치하려면
sti_ci.dll을 CoInstallerEntry 항목의 항목 값으로 지정합니다.
디바이스 설치를 위해 공동 설치 관리자를 등록하려면 디바이스의 INF에 INF DDInstall.CoInstallers 섹션 이 있어야 합니다. 이 섹션은 다음 예제와 유사하게 표시됩니다.
[OEMMFP.GPD.CoInstallers] AddReg=WIA.CoInstallers.AddReg [WIA.CoInstallers.AddReg] HKR,,CoInstallers32,0x00010000,"sti_ci.dll, CoInstallerEntry"
모든 WIA 관련 설정을 포함하는 섹션을 참조하는 WIASection 항목을 INF DDInstall 섹션 에 포함합니다. WIA 관련 설정을 포함하는 섹션은 동일한 INF 파일에 표시되어야 합니다.
[OEMMFP.GPD] CopyFiles=@OEMMFP.DLL,@OEMPRT1.DLL,@OEMUI.DLL,OEMMFP.GPD.WIA.CopyFiles WIASection=OEMMFP.GPD.WIA [OEMMFP.GPD.WIA] Description=%OEM_MFP_SCANNER% SubClass=StillImage DeviceType=1 Capabilities=0x00000011 AddReg=OEMMFP.GPD.WIA.AddReg DeviceData=OEMMFP.GPD.WIA.DeviceData ICMProfiles="sRGB Color Space Profile.icm" USDClass="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"
WIASection 항목을 포함하면 이미지 클래스 설치 관리자는 디바이스에 대한 devnode를 만들지 않고 대신 추가 디바이스 인터페이스를 만듭니다. 따라서 앞에서 언급한 디바이스 인터페이스 레지스트리 키를 사용하여 STI/WIA 관련 정보를 저장합니다.
INF DDInstall 섹션에서 필요한 모든 파일을 복사해야 합니다.
또는 WIASection에서 복사할 파일을 나열할 수 있지만 디바이스 관리자에는 나열되지 않습니다.
포함 및 요구 사항 항목은 WIASection 섹션에서 사용할 수 없습니다.
모든 커널 모드 부분은 원래 INF DDInstall 섹션에 의해 설치되어야 합니다.
디바이스가 핫 플러그형이고 자체 커널 모드 구성 요소가 필요한 경우 Image 클래스 디바이스 인터페이스를 만들고 사용하도록 설정해야 합니다. 이 인터페이스는 Print 클래스 디바이스 인터페이스와 같은 다른 클래스 디바이스 인터페이스에 추가됩니다.
커널 모드 구성 요소는 IoSetDeviceInterfaceState 함수를 호출하여 디바이스의 devnode에서 Image 클래스 디바이스 인터페이스를 사용하도록 설정합니다. Image 클래스 디바이스 인터페이스를 사용하도록 설정하면 플러그 앤 플레이 이벤트가 발생하여 WIA 서비스에 디바이스가 연결되어 있음을 알립니다.