Graphics Handling: Before and After
Previous versions of Windows NT included the following elements:
- Console, which provides text window support, shutdown, and hard-error handling.
- Window Manager (USER), which controls window displays, manages screen output, collects input from keyboard, mouse and other devices, and passes user messages to applications.
- Graphics Device Interface (GDI), a library of APIs for graphics output devices. It includes functions for line, text and figure drawing and graphics manipulation. The Window Manager calls these APIs, but user-mode applications can call them directly.
- Graphics Device Drivers, which collect and format data for hardware-dependent drivers in the Executive. The graphics display drivers, printer drivers, multimedia drivers, and video display drivers were part of the Win32 subsystem and ran in user mode. These drivers then call kernel-mode drivers in the Executive which interact with the hardware.
- Miscellaneous environment functions, special functions for 32-bit Windows applications, like those for creating and deleting processes.
The following figures show how the contents of the Win32 subsystem have changed from Windows NT 3.51 to Windows NT 4.0.
Figure 5.1 Contents of the Win32 Subsystem under Windows NT 3.51
Figure 5.2 Contents of the Win32 Subsystem under Windows NT 4.0
In Windows NT 4.0, the Window Manager, GDI, and Win32 Graphics Device Drivers have been incorporated into the Windows NT Executive. The user-mode portions of Window Manger and GDI, Gdi32.dll and User32.dll, remain in user mode, along with the Console and miscellaneous environment functions. They run in the process created by the Client Server Runtime Subsystem, Csrss.exe, which once included all graphics functions in Win32. The server side functions of GDI and Window Manager, previously known as Winsrv.dll, have been incorporated into the Executive as Win32k.sys.
For a complete description of these components, see the section on the Windows NT Executive, later in this chapter.