The PRINTER_DEFAULTS structure specifies the default data type, environment, initialization data, and access rights for a printer.
typedef struct _PRINTER_DEFAULTS { // pd LPTSTR pDatatype; LPDEVMODE pDevMode; ACCESS_MASK DesiredAccess; } PRINTER_DEFAULTS;
This member can be set to PRINTER_ACCESS_ADMINISTER, PRINTER_ACCESS_USE, or any generic security value (for example, WRITE_DACL). If an application wishes to open a printer to perform administrative tasks, such as the SetPrinter function, it must open the printer with PRINTER_ACCESS_ADMINISTER access.