Compartir a través de


Instalación de la funcionalidad de examen en una MFP con un único PDO

Importante

A partir de WDK para Windows 11, versión 22H2, ya no se admiten los coins instaladores redistribuibles de WDF. Para obtener información sobre cómo solucionar este cambio, consulte Los coins instaladores redistribuibles de WDF no funcionan en el artículo problemas conocidos de WDK .

Se requiere un procedimiento especial para instalar la funcionalidad de escaneo en impresoras multifunción que solo tienen un único objeto de dispositivo físico (PDO). Si el dispositivo se identifica como una impresora, el archivo INF de la impresora puede llamar al co-instalador WIA para instalar la funcionalidad de análisis.

Microsoft recomienda que cada función lógica de una impresora multifunción tenga su propio PDO, si es posible. Debe evitarse la asociación de varias funciones de un dispositivo con un único PDO.

Si registra el co-instalador de WIA como co-instalador del dispositivo, el programa de instalación siempre llama al co-instalador wiA para procesar la instalación antes y después del instalador de la clase Printer. El coinstalador WIA crea una interfaz de dispositivo de clase Image en el PDO de la impresora y almacena toda la información necesaria en la clave del Registro de la interfaz del dispositivo. La ubicación actual en el Registro de esta clave es:

HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{6bdd1fc6-810f-11d0-bec7-08002be2092f}\<vínculo simbólico del dispositivo>

No se garantiza que esta clave permanezca en esta ubicación En versiones futuras del sistema operativo. Para abrir esta clave, llame a SetupDiOpenDeviceInterfaceRegKey.

El servicio WIA enumera todos los archivos PPO de clase Image e interfaces de dispositivo. Por lo tanto, la interfaz de dispositivo recién creada se enumera como un dispositivo WIA.

El DDK de Windows se incluye con un inf de ejemplo que instala la funcionalidad de examen en una impresora multifunción con un único PDO. El nombre de este archivo es mfpoemprn.inf y se encuentra en el directorio \src\print\infs .

Para instalar la funcionalidad de examen en una MFP

  1. Especifique sti_ci.dll como valor de entrada para la entrada CoInstallerEntry .

    El INF para el dispositivo debe tener una sección INF DDInstall.CoInstallers para poder registrar el co-instalador para la instalación del dispositivo. Esta sección debe parecerse al ejemplo siguiente:

    [OEMMFP.GPD.CoInstallers]
    AddReg=WIA.CoInstallers.AddReg
    
    [WIA.CoInstallers.AddReg]
    HKR,,CoInstallers32,0x00010000,"sti_ci.dll, CoInstallerEntry"
    
  2. Incluya una entrada WIASection en la sección INF DDInstall que haga referencia a la sección que contiene toda la configuración relacionada con WIA. La sección que contiene la configuración relacionada con WIA debe aparecer en el mismo archivo 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}"
    

    Al incluir una entrada WIASection , el instalador de clase Image no crea un devnode para el dispositivo, sino que crea una interfaz de dispositivo adicional. En consecuencia, usa la clave del Registro de interfaz de dispositivo mencionada anteriormente para almacenar información relacionada con STI-/WIA.

  3. Asegúrese de que la sección INF DDInstall copia todos los archivos necesarios.

    Como alternativa, puede enumerar los archivos que se van a copiar en WIASection, pero no aparecerán en Administrador de dispositivos.

Las entradas Include y Needs no se pueden usar en la sección WIASection .

Todas las partes del modo kernel deben instalarse mediante la sección inf DDInstall original.

Si el dispositivo es conectable en caliente y requiere su propio componente en modo kernel, debe crear y habilitar una interfaz de dispositivo de clase Image. Esta interfaz se suma a cualquier otra interfaz de dispositivo de clase, como la interfaz de dispositivo de clase Print.

El componente en modo kernel habilita una interfaz de dispositivo de clase Image en el nodo devnode del dispositivo con una llamada a la función IoSetDeviceInterfaceState . Cuando la interfaz de dispositivo de clase Image está habilitada, se desencadena un evento de Plug and Play, notificando al servicio WIA que el dispositivo está conectado.