The spooler receives the output stream from the printer driver and stores the data in files on the hard drive. The spooler services all of the printers that are installed on the machine. Through the use of multiple threads, it can receive streams at the same time it is sending streams. This means that the printer driver need not be finished outputting it's data stream in order for the printer to start receiving data for the job. It also means that multiple streams can be received for any given printer queue at the same time. By spooling print streams, the application that is performing the printing operation is free to perform other tasks before the job is actually rendered to the printer. Older operating systems, such as MS DOS, did not have such functionality, and the user of the computer was required to wait until the last bit of data was received by the printer itself.
In addition to performing spooling operations, the spooler acts as the central point of access for the printing subsystem itself. When printers are shared on the network, the actual thing that is shared is the printers spooler queue. There is no error checking done by the spooler to verify that the data received into the queue is valid for the printer it serves when received through the network. There is however, standard Windows security in place on the printer (spooler queue) object. When a job is received from the network, or by any other means, the spooler impersonates the submitting user.