4 spoolss interface definitions
7 [ uuid(12345678-1234-abcd-ef00-0123456789ab),
10 pointer_default(unique),
11 helpstring("Spooler SubSystem")
40 uint32 displayfrequency;
49 uint8 private[driverextra];
52 typedef [public] struct {
54 [relative] nstring *name;
55 [relative] nstring *description;
56 [relative] nstring *comment;
57 } spoolss_PrinterInfo1;
61 [relative] nstring *name;
70 typedef [public] struct {
71 [relative] nstring *servername;
72 [relative] nstring *printername;
73 [relative] nstring *sharename;
74 [relative] nstring *portname;
75 [relative] nstring *drivername;
76 [relative] nstring *comment;
77 [relative] nstring *location;
78 [relative] spoolss_DeviceMode *devmode;
79 [relative] nstring *sepfile;
80 [relative] nstring *printprocessor;
81 [relative] nstring *datatype;
82 [relative] nstring *parameters;
83 [relative] security_descriptor *secdesc;
86 uint32 defaultpriority;
92 } spoolss_PrinterInfo2;
96 security_descriptor secdesc;
97 } spoolss_PrinterInfo3;
100 [relative] nstring *printername;
101 [relative] nstring *servername;
103 } spoolss_PrinterInfo4;
105 typedef [public] struct {
106 [relative] nstring *printername;
107 [relative] nstring *portname;
109 uint32 device_not_selected_timeout;
110 uint32 transmission_retry_timeout;
111 } spoolss_PrinterInfo5;
115 } spoolss_PrinterInfo6;
118 [relative] nstring *guid; /* text form of printer guid */
120 } spoolss_PrinterInfo7;
122 typedef [nodiscriminant,public] union {
123 [case(1)] spoolss_PrinterInfo1 info1;
124 [case(2)] spoolss_PrinterInfo2 info2;
125 [case(3)] spoolss_PrinterInfo3 info3;
126 [case(4)] spoolss_PrinterInfo4 info4;
127 [case(5)] spoolss_PrinterInfo5 info5;
128 [case(6)] spoolss_PrinterInfo6 info6;
129 [case(7)] spoolss_PrinterInfo7 info7;
130 } spoolss_PrinterInfo;
134 WERROR spoolss_EnumPrinters(
138 [in,out] DATA_BLOB *buffer,
139 [in,out,ref] uint32 *buf_size,
145 WERROR spoolss_OpenPrinter(
147 [in] unistr *printer,
148 [in] DATA_BLOB *buffer,
149 [in] uint32 access_mask,
150 [out,ref] policy_handle *handle
155 WERROR spoolss_SetJob(
156 [in,ref] policy_handle *handle,
164 WERROR spoolss_GetJob(
165 [in,ref] policy_handle *handle,
168 [in] DATA_BLOB *buffer,
169 [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info,
170 [in,out,ref] uint32 *buf_size
186 [relative] nstring printer_name;
187 [relative] nstring server_name;
188 [relative] nstring user_name;
189 [relative] nstring document_name;
190 [relative] nstring data_type;
191 [relative] nstring text_status;
196 uint32 pages_printed;
200 typedef [nodiscriminant,public] union {
201 [case(1)] spoolss_JobInfo1 info1;
206 WERROR spoolss_EnumJobs(
207 [in,ref] policy_handle *handle,
208 [in] uint32 firstjob,
211 [in,out] DATA_BLOB *buffer,
212 [in,out,ref] uint32 *buf_size,
218 WERROR spoolss_AddPrinter(
219 /* This function is not implemented in Samba 3 as no
220 clients have been observed using it. */
225 WERROR spoolss_DeletePrinter(
230 WERROR spoolss_SetPrinter(
235 WERROR spoolss_GetPrinter(
236 [in,ref] policy_handle *handle,
238 [in] DATA_BLOB *buffer,
239 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
240 [in,out,ref] uint32 *buf_size
245 WERROR spoolss_AddPrinterDriver(
249 [relative] nstring *driver_name;
250 } spoolss_DriverInfo1;
254 [relative] nstring *driver_name;
255 [relative] nstring *architecture;
256 [relative] nstring *driver_path;
257 [relative] nstring *data_file;
258 [relative] nstring *config_file;
259 } spoolss_DriverInfo2;
263 [relative] nstring *driver_name;
264 [relative] nstring *architecture;
265 [relative] nstring *driver_path;
266 [relative] nstring *data_file;
267 [relative] nstring *config_file;
268 [relative] nstring *help_file;
269 [relative] nstring *dependent_files; /* array */
270 [relative] nstring *monitor_name;
271 [relative] nstring *default_datatype;
272 } spoolss_DriverInfo3;
274 typedef [nodiscriminant,public] union {
275 [case(1)] spoolss_DriverInfo1 info1;
276 [case(2)] spoolss_DriverInfo2 info2;
277 [case(3)] spoolss_DriverInfo3 info3;
278 } spoolss_DriverInfo;
282 WERROR spoolss_EnumPrinterDrivers(
284 [in] unistr *environment,
286 [in,out] DATA_BLOB *buffer,
287 [in,out,ref] uint32 *buf_size,
293 WERROR spoolss_GetPrinterDriver(
298 WERROR spoolss_GetPrinterDriverDirectory(
303 WERROR spoolss_DeletePrinterDriver(
304 [in,ref] policy_handle *handle,
306 [in] unistr architecture,
312 WERROR spoolss_AddPrintProcessor(
317 WERROR spoolss_EnumPrintProcessors(
322 WERROR spoolss_GetPrintProcessorDirectory(
327 WERROR spoolss_StartDocPrinter(
332 WERROR spoolss_StartPagePrinter(
333 [in,ref] policy_handle *handle
338 WERROR spoolss_WritePrinter(
343 WERROR spoolss_EndPagePrinter(
344 [in,ref] policy_handle *handle
349 WERROR spoolss_AbortPrinter(
354 WERROR spoolss_ReadPrinter(
359 WERROR spoolss_EndDocPrinter(
364 WERROR spoolss_AddJob(
369 WERROR spoolss_ScheduleJob(
374 WERROR spoolss_GetPrinterData(
375 [in,ref] policy_handle *handle,
376 [in] unistr value_name,
378 [out] DATA_BLOB buffer,
379 [in,out,ref] uint32 *buf_size
384 WERROR spoolss_SetPrinterData(
385 [in,ref] policy_handle *handle,
386 [in] unistr value_name,
388 [in] DATA_BLOB buffer,
394 WERROR spoolss_WaitForPrinterChange(
399 WERROR spoolss_ClosePrinter(
400 [in,out,ref] policy_handle *handle
405 [relative] unistr *name;
412 } spoolss_AddFormInfo1;
415 [case(1)] spoolss_AddFormInfo1 *info1;
416 } spoolss_AddFormInfo;
420 WERROR spoolss_AddForm(
421 [in,ref] policy_handle *handle,
423 [in,switch_is(level)] spoolss_AddFormInfo info
428 WERROR spoolss_DeleteForm(
429 [in,ref] policy_handle *handle,
435 WERROR spoolss_GetForm(
436 [in,ref] policy_handle *handle,
437 [in] unistr formname,
439 [in] DATA_BLOB *buffer,
440 [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info,
441 [in,out,ref] uint32 *buf_size
446 WERROR spoolss_SetForm(
447 [in,ref] policy_handle *handle,
448 [in] unistr form_name,
450 [in,switch_is(level)] spoolss_AddFormInfo info
453 typedef [nodiscriminant,public] union {
454 [case(1)] spoolss_FormInfo1 info1;
459 WERROR spoolss_EnumForms(
460 [in,ref] policy_handle *handle,
462 [in,out] DATA_BLOB *buffer,
463 [in,out,ref] uint32 *buf_size,
467 typedef [flag(RELATIVE_CURRENT)] struct {
468 [relative] nstring *port_name;
472 [relative] nstring *port_name;
473 [relative] nstring *monitor_name;
474 [relative] nstring *description;
479 typedef [nondiscriminant,public] union {
480 [case(1)] spoolss_PortInfo1 info1;
481 [case(2)] spoolss_PortInfo2 info2;
486 WERROR spoolss_EnumPorts(
487 [in] unistr *servername,
489 [in,out] DATA_BLOB *buffer,
490 [in,out,ref] uint32 *buf_size,
496 WERROR spoolss_EnumMonitors(
501 WERROR spoolss_AddPort(
506 WERROR spoolss_ConfigurePort(
511 WERROR spoolss_DeletePort(
516 WERROR spoolss_CreatePrinterIC(
521 WERROR spoolss_PlayGDIScriptOnPrinterIC(
526 WERROR spoolss_DeletePrinterIC(
531 WERROR spoolss_AddPrinterConnection(
536 WERROR spoolss_DeletePrinterConnection(
541 WERROR spoolss_PrinterMessageBox(
542 /* Marked as obsolete in MSDN. "Not necessary and has
548 WERROR spoolss_AddMonitor(
553 WERROR spoolss_DeleteMonitor(
558 WERROR spoolss_DeletePrintProcessor(
563 WERROR spoolss_AddPrintProvidor(
568 WERROR spoolss_DeletePrintProvidor(
573 WERROR spoolss_EnumPrintProcDataTypes(
578 WERROR spoolss_ResetPrinter(
583 WERROR spoolss_GetPrinterDriver2(
584 [in,ref] policy_handle *handle,
585 [in] unistr *architecture,
587 [in,out] DATA_BLOB *buffer,
588 [in,out,ref] uint32 *buf_size,
589 [in] uint32 client_major_version,
590 [in] uint32 client_minor_version,
591 [out] uint32 server_major_version,
592 [out] uint32 server_minor_version
597 WERROR spoolss_FindFirstPrinterChangeNotification(
602 WERROR spoolss_FindNextPrinterChangeNotification(
607 WERROR spoolss_FindClosePrinterNotify(
612 WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
617 WERROR spoolss_ReplyOpenPrinter(
622 WERROR spoolss_RouterReplyPrinter(
627 WERROR spoolss_ReplyClosePrinter(
632 WERROR spoolss_AddPortEx(
637 WERROR spoolss_RouterFindFirstPrinterChangeNotification(
642 WERROR spoolss_SpoolerInit(
647 WERROR spoolss_ResetPrinterEx(
652 WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx(
657 WERROR spoolss_RouterRefreshPrinterChangeNotification(
662 WERROR spoolss_RemoteFindNextPrinterChangeNotifyEx(
676 spoolss_Devmode *devmode;
677 } spoolss_DevmodeContainer;
687 } spoolss_UserLevel1;
690 [case(1)] spoolss_UserLevel1 *level1;
695 WERROR spoolss_OpenPrinterEx(
696 [in] unistr *printername,
697 [in] unistr *datatype,
698 [in] spoolss_DevmodeContainer devmode_ctr,
699 [in] uint32 access_required,
701 [in,switch_is(level)] spoolss_UserLevel userlevel,
702 [out,ref] policy_handle *handle
707 WERROR spoolss_AddPrinterEx(
710 [in,switch_is(level)] spoolss_PrinterInfo *info,
711 [in] spoolss_DevmodeContainer devmode_ctr,
712 [in] security_descriptor *secdesc,
714 [in,switch_is(ulevel)] spoolss_UserLevel userlevel
724 WERROR spoolss_EnumPrinterData(
725 [in,ref] policy_handle *handle,
726 [in] uint32 enum_index,
727 [in] uint32 value_offered,
728 [out] lstring value_name,
729 [out] uint32 value_needed,
730 [out] uint32 printerdata_type,
731 [out] DATA_BLOB data,
732 [in,out,ref] uint32 *data_size
737 WERROR spoolss_DeletePrinterData(
738 [in,ref] policy_handle *handle,
739 [in] unistr value_name
759 WERROR spoolss_SetPrinterDataEx(
760 [in,ref] policy_handle *handle,
761 [in] unistr key_name,
762 [in] unistr value_name,
764 [in] DATA_BLOB buffer,
765 [in,out,ref] uint32 *buf_size
770 WERROR spoolss_GetPrinterDataEx(
771 [in,ref] policy_handle *handle,
772 [in] unistr key_name,
773 [in] unistr value_name,
775 [out] DATA_BLOB buffer,
776 [in,out,ref] uint32 *buf_size
781 WERROR spoolss_EnumPrinterDataEx(
782 [in,ref] policy_handle *handle
787 WERROR spoolss_EnumPrinterKey(
792 WERROR spoolss_DeletePrinterDataEx(
793 [in,ref] policy_handle *handle,
794 [in] unistr key_name,
795 [in] unistr value_name
800 WERROR spoolss_DeletePrinterKey(
810 WERROR spoolss_DeletePrinterDriverEx(
835 WERROR spoolss_AddPrinterDriverEx(