Introducción a los proveedores de impresión
Advertencia
A partir de Windows 10, las API que admiten proveedores de impresión de terceros están en desuso. Microsoft no recomienda ninguna inversión en proveedores de impresión de terceros. Además, en Windows 8 y productos más recientes en los que el modelo de controlador de impresión v4 está disponible, es posible que los proveedores de impresión de terceros no creen ni administren colas que usen controladores de impresión v4.
Los proveedores de impresión son responsables de dirigir los trabajos de impresión a dispositivos de impresión locales o remotos. También son responsables de las operaciones de administración de colas de impresión, como iniciar, detener y enumerar las colas de impresión de un servidor. Los proveedores de impresión definen una vista independiente del sistema operativo de alto nivel e independiente del sistema operativo de un servidor de impresión.
Todos los proveedores de impresión implementan un conjunto común de funcionalidades del proveedor de impresión. Estas funcionalidades se definen mediante un conjunto de funciones de API, a las que llama el enrutador del administrador de colas (Spoolss.dll).
La mayoría de las funciones definidas por los proveedores de impresión requieren un identificador de impresora como entrada. Un cliente de cola obtiene un identificador de impresora mediante una llamada a OpenPrinter en Winspool.drv, que llama al servidor de API (Spoolsv.exe). El enrutador del administrador de trabajos de impresión (Spoolss.dll) llama a la función OpenPrinter de cada proveedor de impresión hasta que uno de ellos suministra un identificador de impresora y un valor devuelto que indica que el proveedor de impresión reconoce el nombre de impresora especificado. A continuación, el enrutador devuelve su propio identificador al servidor de API. El controlador del enrutador incluye tanto el controlador de impresora como un controlador de proveedor. Este identificador se devuelve a la aplicación para que las llamadas posteriores de la aplicación se puedan dirigir al proveedor y la impresora correctos.
Microsoft proporciona los siguientes proveedores de impresión con Windows 2000 y versiones posteriores:
Localspl.dll
Proveedor de impresión local. Controla todos los trabajos de impresión dirigidos a impresoras administradas desde el servidor local.
Win32spl.dll
Proveedor de impresión de red de Windows. Controla los trabajos de impresión dirigidos a servidores remotos de Win32 (sistema operativo basado en NT o Windows for Workgroups). Cuando el trabajo llega al servidor remoto, se pasa al proveedor de impresión local del servidor.
Nwprovau.dll
Proveedor de impresión Novell NetWare. Controla los trabajos de impresión dirigidos a los servidores de impresión de Novell NetWare.
Inetpp.dll
Proveedor de impresión HTTP. Controla los trabajos de impresión enviados a una dirección URL.
Los proveedores pueden crear proveedores de impresión de red adicionales. Para obtener más información, consulte Escritura de un proveedor de impresión de red.
En el diagrama siguiente se muestran posibles rutas de flujo que implican a estos proveedores de impresión.
Al ver el diagrama, debe tener en cuenta los siguientes puntos:
Si el sistema cliente administra la impresora, el proveedor de impresión local controla el trabajo de impresión (Localspl.dll). Las impresoras administradas por Localspl.dll no tienen que ser físicamente locales para el cliente; se pueden conectar directamente a tarjetas de red.
Si la impresora se encuentra en un servidor de sistema operativo basado en NT, el proveedor de red (Win32spl.dll) usa RPC para redirigir las llamadas desde el enrutador del cliente al proceso de Spoolsv.exe del servidor. Dado que la impresora es local para el servidor, el proveedor de impresión local del servidor controlará el trabajo de impresión.
Si la impresora se encuentra en algún otro tipo de servidor, puede ser accesible por el proveedor de impresión local o por un proveedor de impresión de red que admita ese tipo de servidor, mediante formatos de datos y protocolos de red compatibles con el servidor.
Para que el proveedor de impresión local acceda a una impresora remota, debe contener un monitor de puerto que pueda usar protocolos de red reconocidos por la impresora remota o el servidor.