단일 PDO를 사용하여 MFP에 검사 기능 설치
중요
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}\<device symbolic link>
이 키는 향후 운영 체제 버전에서 이 위치에 유지되도록 보장되지 않습니다. 이 키를 열려면 SetupDiOpenDeviceInterfaceRegKey를 호출합니다.
WIA 서비스는 모든 Image 클래스 PDO 및 디바이스 인터페이스를 열거합니다. 따라서 새로 만든 디바이스 인터페이스는 WIA 디바이스로 열거됩니다.
Windows DDK는 단일 PDO만 있는 다기능 프린터에 검사 기능을 설치하는 예제 INF와 함께 제공됩니다. 이 파일의 이름은 mfpoemprn.inf이며 \src\print\infs 디렉터리에 있습니다.
MFP에 검사 기능을 설치하려면
sti_ci.dllCoInstallerEntry 항목의 항목 값으로 지정합니다.
디바이스 설치를 위해 공동 설치 관리자를 등록하려면 디바이스의 INF에 INF DDInstall.CoInstallers 섹션 이 있어야 합니다. 이 섹션은 다음 예제와 유사하게 표시됩니다.
[OEMMFP.GPD.CoInstallers] AddReg=WIA.CoInstallers.AddReg [WIA.CoInstallers.AddReg] HKR,,CoInstallers32,0x00010000,"sti_ci.dll, CoInstallerEntry"
모든 WIA 관련 설정을 포함하는 섹션을 참조하는 INF DDInstall 섹션에 WIASection 항목을 포함합니다. 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 항목을 포함하면 Image 클래스 설치 관리자는 디바이스에 대한 devnode를 만들지 않고 대신 추가 디바이스 인터페이스를 만듭니다. 따라서 앞에서 언급한 디바이스 인터페이스 레지스트리 키를 사용하여 STI/WIA 관련 정보를 저장합니다.
INF DDInstall 섹션에서 필요한 모든 파일을 복사해야 합니다.
또는 WIASection에서 복사할 파일을 나열할 수 있지만 장치 관리자 나열되지 않습니다.
포함 및 요구 사항 항목은 WIASection 섹션에서 사용할 수 없습니다.
모든 커널 모드 부분은 원래 INF DDInstall 섹션에 의해 설치되어야 합니다.
디바이스가 핫 플러그링 가능하고 자체 커널 모드 구성 요소가 필요한 경우 Image 클래스 디바이스 인터페이스를 만들고 사용하도록 설정해야 합니다. 이 인터페이스는 Print 클래스 디바이스 인터페이스와 같은 다른 클래스 디바이스 인터페이스에 추가됩니다.
커널 모드 구성 요소는 IoSetDeviceInterfaceState 함수를 호출하여 디바이스의 devnode에서 Image 클래스 디바이스 인터페이스를 사용하도록 설정합니다. Image 클래스 디바이스 인터페이스를 사용하도록 설정하면 디바이스가 연결되어 있음을 WIA 서비스에 알리는 플러그 앤 플레이 이벤트가 발생합니다.