Microsoft® Windows NT® provides a robust graphics architecture in which third party graphics hardware companies can easily integrate their video displays and printing devices. This book provides design guidelines for writing effective graphics drivers. It is broken down as follows:
This section describes the Windows NT graphics architecture, and the Graphics Driver Interface (GDI) and Device Driver Interface (DDI). Design and implementation details that are common to both display and printing drivers are then discussed.
Part 2 describes the video display environment in Windows NT, and provides design and implementation details for display and video miniport driver writers.
Part 3 describes the Windows NT printing environment, and provides design and implementation details for printer driver and/or minidriver writers. Design guidelines are also provided for third-party vendors who need to write their own print monitors.
The glossary found at the end of this book helps define terms and acronyms specific to the graphics subsystem and driver design.
Graphics driver function references are found in the Windows NT Graphics Driver Reference. For more information on the design of kernel-mode drivers, see the Windows NT Kernel-mode Driver Design Guide.
The Windows NT operating system provides graphics support as a part of its executive services. The graphics system architecture, from application to driver output, is shown in Figure 1.1. The printing path shown in this figure is the most common of many ways to print. Note that the spooler runs in user mode as a separate process.
Figure 1.1 Windows NT Graphics Architecture
Microsoft® Win32® application writers request graphics and print operations by calling the system-supplied Win32 GDI and WinSpool functions. The Win32 APIs allow application developers to implement device-independent code, and are described in the Win32 SDK.
The Win32 subsystem routes graphics requests to the graphics engine by way of the NT executive system services. The graphics engine, also known as GDI, processes these requests in conjunction with the hardware-specific display or printer driver. GDI communicates with these drivers through a set of functions called the DDI. Graphics hardware vendors write drivers specific to their display or printer hardware by implementing some or all of the DDI. GDI is system-supplied, and cannot be replaced.
A display driver is paired with a video miniport driver to complete video display support. Each video miniport driver provides hardware-level support for its associated display driver. Video miniport driver writers implement the video miniport driver interface described in Part 2 of this book.
The Windows NT spooler enables print jobs to be routed to local and network printers. It is sometimes referred to as the print subsystem since it is comprised of numerous components. Along with printer drivers and minidrivers, printer IHVs can develop their own print processor and/or monitors. See Part 3 of this book for more details.