


The diagrams illustrate an entirely local environment. Note also that the EMF Print Processor changes output format to non-EMF. Note in these diagrams that if the output format from GDI is enhanced metafile (EMF), the printer graphics DLL does not receive the job until the EMF print processor plays back EMF records.

The second diagram depicts a kernel-mode printer graphics DLL. For more information, see Choosing User Mode or Kernel Mode. Note In Windows Vista printer graphics DLLs can only execute in user mode. The first diagram depicts a user-mode printer graphics DLL. EMF recording and playback are combined in these figures. The following two figures illustrate the data flow that occurs when an application creates a print job using GDI. The graphics DLL does all rendering by providing graphics DDI drawing functions and using a device-managed surface.įor example, the Microsoft Universal Printer Driver (Unidrv) uses a GDI-managed surface and provides some graphics DDI drawing functions, while the Microsoft PostScript Printer Driver uses a device-managed surface.įor more information about providing rendering assistance in graphics drivers, see Surface Types and Using the Graphics DDI. The graphics DDI drawing functions provided by the graphics DLL can optionally call back to the GDI rendering engine's GDI support services. The graphics DLL provides some graphics DDI drawing functions to work in conjunction with GDI's rendering engine, using a GDI-managed surface. The graphics DLL does not provide any DDI drawing functions. The GDI rendering engine does all rendering, using a GDI-managed surface. The amount of rendering assistance that a printer graphics DLL must provide is printer type-specific, depending on the hardware's drawing capabilities, and includes the following scenarios: Printer graphics DLLs typically produce an output stream in a RAW data type (including command sequences) that the spooler can send to printer hardware through print monitors.

These DLLs have the following two responsibilities:Ī printer graphics DLL can provide graphics DDI drawing functions to handle drawing operations that must be performed in a device-specific manner and thus cannot be handled exclusively by GDI's rendering engine.ĭeliver a rendered data stream to the spooler. Printer graphics DLLs implement Drv-prefixed graphics DDI functions that are described in Using the Graphics DDI.
