4 spoolss interface definitions
7 [ uuid("12345678-1234-abcd-ef00-0123456789ab"),
9 endpoint("ncacn_np:[\\pipe\\spoolss]"),
10 pointer_default(unique),
11 helpstring("Spooler SubSystem"),
27 [relative] nstring *printername;
28 [relative] nstring *servername;
33 uint32 global_counter;
39 uint32 session_counter;
41 uint32 printer_errors;
56 } spoolss_PrinterInfo0;
84 uint32 displayfrequency;
93 uint8 private[driverextra];
96 typedef [public] struct {
98 [relative] nstring *name;
99 [relative] nstring *description;
100 [relative] nstring *comment;
101 } spoolss_PrinterInfo1;
103 typedef [public] struct {
104 [relative] nstring *servername;
105 [relative] nstring *printername;
106 [relative] nstring *sharename;
107 [relative] nstring *portname;
108 [relative] nstring *drivername;
109 [relative] nstring *comment;
110 [relative] nstring *location;
111 [relative] spoolss_DeviceMode *devmode;
112 [relative] nstring *sepfile;
113 [relative] nstring *printprocessor;
114 [relative] nstring *datatype;
115 [relative] nstring *parameters;
116 [relative,subcontext(0)] security_descriptor *secdesc;
119 uint32 defaultpriority;
125 } spoolss_PrinterInfo2;
129 [subcontext(0)] security_descriptor secdesc;
130 } spoolss_PrinterInfo3;
133 [relative] nstring *printername;
134 [relative] nstring *servername;
136 } spoolss_PrinterInfo4;
138 typedef [public] struct {
139 [relative] nstring *printername;
140 [relative] nstring *portname;
142 uint32 device_not_selected_timeout;
143 uint32 transmission_retry_timeout;
144 } spoolss_PrinterInfo5;
148 } spoolss_PrinterInfo6;
151 [relative] nstring *guid; /* text form of printer guid */
153 } spoolss_PrinterInfo7;
155 typedef [nodiscriminant,public] union {
156 [case(0)] spoolss_PrinterInfo0 info0;
157 [case(1)] spoolss_PrinterInfo1 info1;
158 [case(2)] spoolss_PrinterInfo2 info2;
159 [case(3)] spoolss_PrinterInfo3 info3;
160 [case(4)] spoolss_PrinterInfo4 info4;
161 [case(5)] spoolss_PrinterInfo5 info5;
162 [case(6)] spoolss_PrinterInfo6 info6;
163 [case(7)] spoolss_PrinterInfo7 info7;
164 } spoolss_PrinterInfo;
166 const int PRINTER_ENUM_DEFAULT = 0x00000001;
167 const int PRINTER_ENUM_LOCAL = 0x00000002;
168 const int PRINTER_ENUM_CONNECTIONS = 0x00000004;
169 const int PRINTER_ENUM_FAVORITE = 0x00000004;
170 const int PRINTER_ENUM_NAME = 0x00000008;
171 const int PRINTER_ENUM_REMOTE = 0x00000010;
172 const int PRINTER_ENUM_SHARED = 0x00000020;
173 const int PRINTER_ENUM_NETWORK = 0x00000040;
177 [noprint,nopull,nopush] WERROR spoolss_EnumPrinters(
181 [in] DATA_BLOB *buffer,
182 /* [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info[count],*/
183 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo **info,
184 [in,out,ref] uint32 *buf_size,
196 spoolss_Devmode *devmode;
197 } spoolss_DevmodeContainer;
199 WERROR spoolss_OpenPrinter(
200 [in] unistr *printername,
201 [in] unistr *datatype,
202 [in] spoolss_DevmodeContainer devmode_ctr,
203 [in] uint32 access_mask,
204 [out,ref] policy_handle *handle
209 WERROR spoolss_SetJob(
210 [in,ref] policy_handle *handle,
218 WERROR spoolss_GetJob(
219 [in,ref] policy_handle *handle,
222 [in] DATA_BLOB *buffer,
223 [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info,
224 [in,out,ref] uint32 *buf_size
229 [relative] nstring *printer_name;
230 [relative] nstring *server_name;
231 [relative] nstring *user_name;
232 [relative] nstring *document_name;
233 [relative] nstring *data_type;
234 [relative] nstring *text_status;
239 uint32 pages_printed;
243 typedef [nodiscriminant,public] union {
244 [case(1)] spoolss_JobInfo1 info1;
249 [noprint,nopull,nopush] WERROR spoolss_EnumJobs(
250 [in,ref] policy_handle *handle,
251 [in] uint32 firstjob,
254 [in] DATA_BLOB *buffer,
255 /* [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info[count],*/
256 [out,subcontext(4),switch_is(level)] spoolss_JobInfo **info,
257 [in,out,ref] uint32 *buf_size,
263 WERROR spoolss_AddPrinter(
264 /* This function is not implemented in Samba 3 as no
265 clients have been observed using it. */
270 WERROR spoolss_DeletePrinter(
275 WERROR spoolss_SetPrinter(
280 WERROR spoolss_GetPrinter(
281 [in,ref] policy_handle *handle,
283 [in] DATA_BLOB *buffer,
284 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
285 [in,out,ref] uint32 *buf_size
290 WERROR spoolss_AddPrinterDriver(
294 [relative] nstring *driver_name;
295 } spoolss_DriverInfo1;
299 [relative] nstring *driver_name;
300 [relative] nstring *architecture;
301 [relative] nstring *driver_path;
302 [relative] nstring *data_file;
303 [relative] nstring *config_file;
304 } spoolss_DriverInfo2;
308 [relative] nstring *driver_name;
309 [relative] nstring *architecture;
310 [relative] nstring *driver_path;
311 [relative] nstring *data_file;
312 [relative] nstring *config_file;
313 [relative] nstring *help_file;
314 [relative] nstring *dependent_files; /* array */
315 [relative] nstring *monitor_name;
316 [relative] nstring *default_datatype;
317 } spoolss_DriverInfo3;
319 typedef [nodiscriminant,public] union {
320 [case(1)] spoolss_DriverInfo1 info1;
321 [case(2)] spoolss_DriverInfo2 info2;
322 [case(3)] spoolss_DriverInfo3 info3;
323 } spoolss_DriverInfo;
327 [noprint,nopull,nopush] WERROR spoolss_EnumPrinterDrivers(
329 [in] unistr *environment,
331 [in] DATA_BLOB *buffer,
332 /* [out,subcontext(4),switch_is(level)] spoolss_DriverInfo *info[count],*/
333 [out,subcontext(4),switch_is(level)] spoolss_DriverInfo **info,
334 [in,out,ref] uint32 *buf_size,
340 WERROR spoolss_GetPrinterDriver(
345 WERROR spoolss_GetPrinterDriverDirectory(
350 WERROR spoolss_DeletePrinterDriver(
351 [in,ref] policy_handle *handle,
353 [in] unistr architecture,
359 WERROR spoolss_AddPrintProcessor(
364 WERROR spoolss_EnumPrintProcessors(
369 WERROR spoolss_GetPrintProcessorDirectory(
374 WERROR spoolss_StartDocPrinter(
379 WERROR spoolss_StartPagePrinter(
380 [in,ref] policy_handle *handle
385 WERROR spoolss_WritePrinter(
390 WERROR spoolss_EndPagePrinter(
391 [in,ref] policy_handle *handle
396 WERROR spoolss_AbortPrinter(
401 WERROR spoolss_ReadPrinter(
406 WERROR spoolss_EndDocPrinter(
411 WERROR spoolss_AddJob(
416 WERROR spoolss_ScheduleJob(
421 WERROR spoolss_GetPrinterData(
422 [in,ref] policy_handle *handle,
423 [in] unistr value_name,
425 [out] DATA_BLOB buffer,
426 [in,out,ref] uint32 *buf_size
431 WERROR spoolss_SetPrinterData(
432 [in,ref] policy_handle *handle,
433 [in] unistr value_name,
435 [in] DATA_BLOB buffer,
441 WERROR spoolss_WaitForPrinterChange(
446 WERROR spoolss_ClosePrinter(
447 [in,out,ref] policy_handle *handle
452 [relative] unistr *formname;
459 } spoolss_AddFormInfo1;
462 [case(1)] spoolss_AddFormInfo1 *info1;
463 } spoolss_AddFormInfo;
467 WERROR spoolss_AddForm(
468 [in,ref] policy_handle *handle,
470 [in,switch_is(level)] spoolss_AddFormInfo info
475 WERROR spoolss_DeleteForm(
476 [in,ref] policy_handle *handle,
484 [relative] nstring *formname;
493 WERROR spoolss_GetForm(
494 [in,ref] policy_handle *handle,
495 [in] unistr formname,
497 [in] DATA_BLOB *buffer,
498 [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info,
499 [in,out,ref] uint32 *buf_size
511 } spoolss_SetFormInfo1;
514 [case(1)] spoolss_AddFormInfo1 *info1;
515 } spoolss_SetFormInfo;
519 WERROR spoolss_SetForm(
520 [in,ref] policy_handle *handle,
521 [in] unistr formname,
523 [in,switch_is(level)] spoolss_SetFormInfo info
526 typedef [nodiscriminant,public] union {
527 [case(1)] spoolss_FormInfo1 info1;
532 [noprint,nopull,nopush] WERROR spoolss_EnumForms(
533 [in,ref] policy_handle *handle,
535 [in] DATA_BLOB *buffer,
536 /* [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info[count],*/
537 [out,subcontext(4),switch_is(level)] spoolss_FormInfo **info,
538 [in,out,ref] uint32 *buf_size,
542 typedef [flag(RELATIVE_CURRENT)] struct {
543 [relative] nstring *port_name;
547 SPOOLSS_PORT_TYPE_WRITE = 0x00000001,
548 SPOOLSS_PORT_TYPE_READ = 0x00000002,
549 SPOOLSS_PORT_TYPE_REDIRECTED = 0x00000004,
550 SPOOLSS_PORT_TYPE_NET_ATTACHED = 0x00000008
554 [relative] nstring *port_name;
555 [relative] nstring *monitor_name;
556 [relative] nstring *description;
557 spoolss_PortType port_type;
561 typedef [nondiscriminant,public] union {
562 [case(1)] spoolss_PortInfo1 info1;
563 [case(2)] spoolss_PortInfo2 info2;
568 [noprint,nopull,nopush] WERROR spoolss_EnumPorts(
569 [in] unistr *servername,
571 [in] DATA_BLOB *buffer,
572 /* [out,subcontext(4),switch_is(level)] spoolss_PortInfo *info[count], */
573 [out,subcontext(4),switch_is(level)] spoolss_PortInfo **info,
574 [in,out,ref] uint32 *buf_size,
580 WERROR spoolss_EnumMonitors(
585 WERROR spoolss_AddPort(
590 WERROR spoolss_ConfigurePort(
595 WERROR spoolss_DeletePort(
600 WERROR spoolss_CreatePrinterIC(
605 WERROR spoolss_PlayGDIScriptOnPrinterIC(
610 WERROR spoolss_DeletePrinterIC(
615 WERROR spoolss_AddPrinterConnection(
620 WERROR spoolss_DeletePrinterConnection(
625 WERROR spoolss_PrinterMessageBox(
626 /* Marked as obsolete in MSDN. "Not necessary and has
632 WERROR spoolss_AddMonitor(
637 WERROR spoolss_DeleteMonitor(
642 WERROR spoolss_DeletePrintProcessor(
647 WERROR spoolss_AddPrintProvidor(
652 WERROR spoolss_DeletePrintProvidor(
657 WERROR spoolss_EnumPrintProcDataTypes(
662 WERROR spoolss_ResetPrinter(
667 WERROR spoolss_GetPrinterDriver2(
668 [in,ref] policy_handle *handle,
669 [in] unistr *architecture,
671 [in,out] DATA_BLOB *buffer,
672 [in,out,ref] uint32 *buf_size,
673 [in] uint32 client_major_version,
674 [in] uint32 client_minor_version,
675 [out] uint32 server_major_version,
676 [out] uint32 server_minor_version
681 WERROR spoolss_FindFirstPrinterChangeNotification(
686 WERROR spoolss_FindNextPrinterChangeNotification(
691 WERROR spoolss_FindClosePrinterNotify(
696 WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
701 WERROR spoolss_ReplyOpenPrinter(
706 WERROR spoolss_RouterReplyPrinter(
711 WERROR spoolss_ReplyClosePrinter(
716 WERROR spoolss_AddPortEx(
721 WERROR spoolss_RouterFindFirstPrinterChangeNotification(
726 WERROR spoolss_SpoolerInit(
731 WERROR spoolss_ResetPrinterEx(
736 WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx(
741 WERROR spoolss_RouterRefreshPrinterChangeNotification(
746 WERROR spoolss_RemoteFindNextPrinterChangeNotifyEx(
762 } spoolss_UserLevel1;
765 [case(1)] spoolss_UserLevel1 *level1;
770 WERROR spoolss_OpenPrinterEx(
771 [in] unistr *printername,
772 [in] unistr *datatype,
773 [in] spoolss_DevmodeContainer devmode_ctr,
774 [in] uint32 access_mask,
776 [in,switch_is(level)] spoolss_UserLevel userlevel,
777 [out,ref] policy_handle *handle
782 WERROR spoolss_AddPrinterEx(
785 [in,switch_is(level)] spoolss_PrinterInfo *info,
786 [in] spoolss_DevmodeContainer devmode_ctr,
787 [in] security_descriptor *secdesc,
789 [in,switch_is(ulevel)] spoolss_UserLevel userlevel
799 WERROR spoolss_EnumPrinterData(
800 [in,ref] policy_handle *handle,
801 [in] uint32 enum_index,
802 [in] uint32 value_offered,
803 [out] lstring value_name,
804 [out] uint32 value_needed,
805 [out] uint32 printerdata_type,
806 [out] DATA_BLOB buffer,
807 [in,out,ref] uint32 *data_size
812 WERROR spoolss_DeletePrinterData(
813 [in,ref] policy_handle *handle,
814 [in] unistr value_name
834 WERROR spoolss_SetPrinterDataEx(
835 [in,ref] policy_handle *handle,
836 [in] unistr key_name,
837 [in] unistr value_name,
839 [in] DATA_BLOB buffer,
840 [in,out,ref] uint32 *buf_size
845 WERROR spoolss_GetPrinterDataEx(
846 [in,ref] policy_handle *handle,
847 [in] unistr key_name,
848 [in] unistr value_name,
850 [out] DATA_BLOB buffer,
851 [in,out,ref] uint32 *buf_size
856 WERROR spoolss_EnumPrinterDataEx(
857 [in,ref] policy_handle *handle,
858 [in] unistr key_name,
859 [out] DATA_BLOB buffer,
860 [in,out] uint32 buf_size,
866 WERROR spoolss_EnumPrinterKey(
871 WERROR spoolss_DeletePrinterDataEx(
872 [in,ref] policy_handle *handle,
873 [in] unistr key_name,
874 [in] unistr value_name
879 WERROR spoolss_DeletePrinterKey(
889 WERROR spoolss_DeletePrinterDriverEx(
914 WERROR spoolss_AddPrinterDriverEx(