Introducción a DLL de gráficos de impresora
Importante
La plataforma de impresión moderna es el medio preferido de Windows para comunicarse con impresoras. Se recomienda usar el controlador de clase de bandeja de entrada IPP de Microsoft, junto con aplicaciones de soporte técnico de impresión (PSA), para personalizar la experiencia de impresión en Windows 10 y 11 para el desarrollo de dispositivos de impresora.
Para obtener más información, consulte Plataforma de impresión moderna y la Guía de diseño de aplicaciones para compatibilidad con impresión.
Los archivos DLL de gráficos de impresora implementan funciones de DDI de gráficos con el prefijo Drv que se describen en Uso de DDI de gráficos. Estos archivos DLL tienen las dos responsabilidades siguientes:
Ayudar a GDI a representar un trabajo de impresión.
Un DLL de gráficos de impresora puede proporcionar funciones de dibujo de DDI de gráficos para controlar las operaciones de dibujo que deben realizarse de forma específica del dispositivo y, por tanto, no se pueden controlar exclusivamente mediante el motor de representación de GDI.
Entregar un flujo de datos representado al administrador de trabajos de impresión.
Los archivos DLL de gráficos de impresora suelen generar un flujo de salida en un tipo de datos sin procesar (incluidas las secuencias de comandos) que el administrador de trabajos de impresión puede enviar al hardware de la impresora a través de monitores de impresión.
La cantidad de asistencia de representación que debe proporcionar un DLL de gráficos de impresora es específica del tipo de impresora, en función de las funcionalidades de dibujo del hardware, e incluye los siguientes escenarios:
El motor de representación de GDI realiza toda la representación mediante una superficie administrada por GDI. El archivo DLL de gráficos no proporciona ninguna función de dibujo DDI.
El DLL de gráficos proporciona algunas funciones de dibujo de DDI de gráficos para que funcionen con el motor de representación de GDI, mediante una superficie administrada por GDI. Las funciones de dibujo de DDI de gráficos proporcionadas por el DLL de gráficos pueden llamar opcionalmente a los servicios de compatibilidad con GDI del motor de representación de GDI.
El archivo DLL de gráficos realiza toda la representación proporcionando funciones de dibujo de DDI de gráficos y usando una superficie administrada por el dispositivo.
Por ejemplo, el controlador de impresora universal de Microsoft (Unidrv) usa una superficie administrada por GDI y proporciona algunas funciones de dibujo de DDI de gráficos, mientras que el controlador de impresoras PostScript de Microsoft usa una superficie administrada por el dispositivo.
Para obtener más información sobre cómo proporcionar asistencia de representación en controladores gráficos, consulte Tipos de superficie y Uso de la DDI de gráficos.
En las dos ilustraciones siguientes se muestra el flujo de datos que se produce cuando una aplicación crea un trabajo de impresión mediante GDI. La grabación y reproducción de EMF se combinan en estas ilustraciones.
En el primer diagrama se muestra un archivo DLL de gráficos de impresora en modo de usuario.
Nota En Windows Vista, los archivos DLL de gráficos de impresora solo se pueden ejecutar en modo de usuario. Para obtener más información, consulte Elección del modo de usuario o el modo kernel.
En el segundo diagrama se muestra un archivo DLL de gráficos de impresora en modo kernel.
Tenga en cuenta en estos diagramas que si el formato de salida de GDI es un metarchivo mejorado (EMF), el archivo DLL de gráficos de impresora no recibe el trabajo hasta que el procesador de impresión EMF reproduzca los registros EMF. Tenga en cuenta también que el procesador de impresión EMF cambia el formato de salida a no EMF.
Los diagramas muestran un entorno completamente local. Si la impresora está conectada a un servidor, los registros EMF normalmente se generan mediante la copia del cliente del motor de representación GDI (GRE) y, a continuación, se agrupan en un archivo local que se envía al servidor. La copia del servidor del administrador de trabajos de impresión lee el archivo y envía los registros al procesador de impresión EMF del servidor y la copia del servidor de GRE llama al DLL de gráficos de impresora del servidor.