The following information is provided as is, and the authors take no responsibility for the correctness.
Try executing “rundll32 printui.dll,PrintUIEntry /?“, and you will discover all sorts of tasty managment functions.
Microsoft has included some nifty spooler stress test tools in their Windows Server System Reference Architecture (WSSRA).
The complete WSSRA including the tools can be download here: http://go.microsoft.com/fwlink/?LinkId=32645&clcid=0x409
On Windows 2000 the only upper limit in theory is due to the dmDriverExtra field (short) in public devmode. But in practice, there are legacy applications that assumed their own “big enough” devmode size. From our testing experience, we recommend the full DEVMODE size to be no more than 10K.
Windows 98 has a 2K limit.
Our testing showed that some legacy apps will crash if the full DEVMODE size is over 12K. That's why we recommended the 10K size (For Windows NT/2000/XP...). //Printer Drivers -- Ask the Experts Online, November 2002
When specifying Level 2 for GetPrinter, you might always receive an ERROR_ACCESS_DENIED, even if you provided PRINTER_ACCESS_ADMINISTER, READ_CONTROL or ACCESS_SYSTEM_SECURITY in the access mask used for OpenPrinter.
To sucessfully call GetPrinter for level 2, you should:
The status of printers and print jobs are updated by the Win32 Spooler during the despool of a print job. At all other times, when that printer is not despooling and reports no state information, the printer is considered to be ready and idle.
There is one fundamental premise that must be true to determine the state of a physical printer: the Spooler must be attempting to send a print job to the physical printer. This is the only time the state of the printer is reported by the port monitor.
For information on how to get status informations se the Microsoft Knowledge Base article Q160129.