Windows applications use only the standard Windows functions to access system memory, the output device, the keyboard, and the mouse. Each application interacts with the user through one or more windows that are created and maintained by the user. GDI assists an application in creating output by passing device-independent function calls from the application to the device driver. The device driver first translates these device-independent function calls into device-dependent operations that create images on a device's display surface, and then sends them to Print Manager (the spooler). Print Manager serves two purposes: it collects translated commands from one application and stores them in a corresponding job, and it passes a complete job to the device for output. Figure 2.20 shows the path of output from a Windows application to a device:
If only one Windows application were allowed to run at any given time, Print Manager and many of the escape functions would be unnecessary. However, Windows allows several applications to run at once. If two or more of these applications send output simultaneously, each application's output must be separated and remain separated during printing or plotting. Print Manager maintains this separation. The printer-escape functions affect the way Print Manager handles this separation task.