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,
190 WERROR spoolss_OpenPrinter(
192 [in] unistr *printer,
193 [in] DATA_BLOB *buffer,
194 [in] uint32 access_mask,
195 [out,ref] policy_handle *handle
200 WERROR spoolss_SetJob(
201 [in,ref] policy_handle *handle,
209 WERROR spoolss_GetJob(
210 [in,ref] policy_handle *handle,
213 [in] DATA_BLOB *buffer,
214 [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info,
215 [in,out,ref] uint32 *buf_size
220 [relative] nstring *printer_name;
221 [relative] nstring *server_name;
222 [relative] nstring *user_name;
223 [relative] nstring *document_name;
224 [relative] nstring *data_type;
225 [relative] nstring *text_status;
230 uint32 pages_printed;
234 typedef [nodiscriminant,public] union {
235 [case(1)] spoolss_JobInfo1 info1;
240 [noprint,nopull,nopush] WERROR spoolss_EnumJobs(
241 [in,ref] policy_handle *handle,
242 [in] uint32 firstjob,
245 [in] DATA_BLOB *buffer,
246 /* [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info[count],*/
247 [out,subcontext(4),switch_is(level)] spoolss_JobInfo **info,
248 [in,out,ref] uint32 *buf_size,
254 WERROR spoolss_AddPrinter(
255 /* This function is not implemented in Samba 3 as no
256 clients have been observed using it. */
261 WERROR spoolss_DeletePrinter(
266 WERROR spoolss_SetPrinter(
271 WERROR spoolss_GetPrinter(
272 [in,ref] policy_handle *handle,
274 [in] DATA_BLOB *buffer,
275 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
276 [in,out,ref] uint32 *buf_size
281 WERROR spoolss_AddPrinterDriver(
285 [relative] nstring *driver_name;
286 } spoolss_DriverInfo1;
290 [relative] nstring *driver_name;
291 [relative] nstring *architecture;
292 [relative] nstring *driver_path;
293 [relative] nstring *data_file;
294 [relative] nstring *config_file;
295 } spoolss_DriverInfo2;
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 [relative] nstring *help_file;
305 [relative] nstring *dependent_files; /* array */
306 [relative] nstring *monitor_name;
307 [relative] nstring *default_datatype;
308 } spoolss_DriverInfo3;
310 typedef [nodiscriminant,public] union {
311 [case(1)] spoolss_DriverInfo1 info1;
312 [case(2)] spoolss_DriverInfo2 info2;
313 [case(3)] spoolss_DriverInfo3 info3;
314 } spoolss_DriverInfo;
318 [noprint,nopull,nopush] WERROR spoolss_EnumPrinterDrivers(
320 [in] unistr *environment,
322 [in] DATA_BLOB *buffer,
323 /* [out,subcontext(4),switch_is(level)] spoolss_DriverInfo *info[count],*/
324 [out,subcontext(4),switch_is(level)] spoolss_DriverInfo **info,
325 [in,out,ref] uint32 *buf_size,
331 WERROR spoolss_GetPrinterDriver(
336 WERROR spoolss_GetPrinterDriverDirectory(
341 WERROR spoolss_DeletePrinterDriver(
342 [in,ref] policy_handle *handle,
344 [in] unistr architecture,
350 WERROR spoolss_AddPrintProcessor(
355 WERROR spoolss_EnumPrintProcessors(
360 WERROR spoolss_GetPrintProcessorDirectory(
365 WERROR spoolss_StartDocPrinter(
370 WERROR spoolss_StartPagePrinter(
371 [in,ref] policy_handle *handle
376 WERROR spoolss_WritePrinter(
381 WERROR spoolss_EndPagePrinter(
382 [in,ref] policy_handle *handle
387 WERROR spoolss_AbortPrinter(
392 WERROR spoolss_ReadPrinter(
397 WERROR spoolss_EndDocPrinter(
402 WERROR spoolss_AddJob(
407 WERROR spoolss_ScheduleJob(
412 WERROR spoolss_GetPrinterData(
413 [in,ref] policy_handle *handle,
414 [in] unistr value_name,
416 [out] DATA_BLOB buffer,
417 [in,out,ref] uint32 *buf_size
422 WERROR spoolss_SetPrinterData(
423 [in,ref] policy_handle *handle,
424 [in] unistr value_name,
426 [in] DATA_BLOB buffer,
432 WERROR spoolss_WaitForPrinterChange(
437 WERROR spoolss_ClosePrinter(
438 [in,out,ref] policy_handle *handle
443 [relative] unistr *formname;
450 } spoolss_AddFormInfo1;
453 [case(1)] spoolss_AddFormInfo1 *info1;
454 } spoolss_AddFormInfo;
458 WERROR spoolss_AddForm(
459 [in,ref] policy_handle *handle,
461 [in,switch_is(level)] spoolss_AddFormInfo info
466 WERROR spoolss_DeleteForm(
467 [in,ref] policy_handle *handle,
475 [relative] nstring *formname;
484 WERROR spoolss_GetForm(
485 [in,ref] policy_handle *handle,
486 [in] unistr formname,
488 [in] DATA_BLOB *buffer,
489 [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info,
490 [in,out,ref] uint32 *buf_size
502 } spoolss_SetFormInfo1;
505 [case(1)] spoolss_AddFormInfo1 *info1;
506 } spoolss_SetFormInfo;
510 WERROR spoolss_SetForm(
511 [in,ref] policy_handle *handle,
512 [in] unistr formname,
514 [in,switch_is(level)] spoolss_SetFormInfo info
517 typedef [nodiscriminant,public] union {
518 [case(1)] spoolss_FormInfo1 info1;
523 [noprint,nopull,nopush] WERROR spoolss_EnumForms(
524 [in,ref] policy_handle *handle,
526 [in] DATA_BLOB *buffer,
527 /* [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info[count],*/
528 [out,subcontext(4),switch_is(level)] spoolss_FormInfo **info,
529 [in,out,ref] uint32 *buf_size,
533 typedef [flag(RELATIVE_CURRENT)] struct {
534 [relative] nstring *port_name;
538 [relative] nstring *port_name;
539 [relative] nstring *monitor_name;
540 [relative] nstring *description;
545 typedef [nondiscriminant,public] union {
546 [case(1)] spoolss_PortInfo1 info1;
547 [case(2)] spoolss_PortInfo2 info2;
552 [noprint,nopull,nopush] WERROR spoolss_EnumPorts(
553 [in] unistr *servername,
555 [in] DATA_BLOB *buffer,
556 /* [out,subcontext(4),switch_is(level)] spoolss_PortInfo *info[count], */
557 [out,subcontext(4),switch_is(level)] spoolss_PortInfo **info,
558 [in,out,ref] uint32 *buf_size,
564 WERROR spoolss_EnumMonitors(
569 WERROR spoolss_AddPort(
574 WERROR spoolss_ConfigurePort(
579 WERROR spoolss_DeletePort(
584 WERROR spoolss_CreatePrinterIC(
589 WERROR spoolss_PlayGDIScriptOnPrinterIC(
594 WERROR spoolss_DeletePrinterIC(
599 WERROR spoolss_AddPrinterConnection(
604 WERROR spoolss_DeletePrinterConnection(
609 WERROR spoolss_PrinterMessageBox(
610 /* Marked as obsolete in MSDN. "Not necessary and has
616 WERROR spoolss_AddMonitor(
621 WERROR spoolss_DeleteMonitor(
626 WERROR spoolss_DeletePrintProcessor(
631 WERROR spoolss_AddPrintProvidor(
636 WERROR spoolss_DeletePrintProvidor(
641 WERROR spoolss_EnumPrintProcDataTypes(
646 WERROR spoolss_ResetPrinter(
651 WERROR spoolss_GetPrinterDriver2(
652 [in,ref] policy_handle *handle,
653 [in] unistr *architecture,
655 [in,out] DATA_BLOB *buffer,
656 [in,out,ref] uint32 *buf_size,
657 [in] uint32 client_major_version,
658 [in] uint32 client_minor_version,
659 [out] uint32 server_major_version,
660 [out] uint32 server_minor_version
665 WERROR spoolss_FindFirstPrinterChangeNotification(
670 WERROR spoolss_FindNextPrinterChangeNotification(
675 WERROR spoolss_FindClosePrinterNotify(
680 WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
685 WERROR spoolss_ReplyOpenPrinter(
690 WERROR spoolss_RouterReplyPrinter(
695 WERROR spoolss_ReplyClosePrinter(
700 WERROR spoolss_AddPortEx(
705 WERROR spoolss_RouterFindFirstPrinterChangeNotification(
710 WERROR spoolss_SpoolerInit(
715 WERROR spoolss_ResetPrinterEx(
720 WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx(
725 WERROR spoolss_RouterRefreshPrinterChangeNotification(
730 WERROR spoolss_RemoteFindNextPrinterChangeNotifyEx(
744 spoolss_Devmode *devmode;
745 } spoolss_DevmodeContainer;
755 } spoolss_UserLevel1;
758 [case(1)] spoolss_UserLevel1 *level1;
763 WERROR spoolss_OpenPrinterEx(
764 [in] unistr *printername,
765 [in] unistr *datatype,
766 [in] spoolss_DevmodeContainer devmode_ctr,
767 [in] uint32 access_mask,
769 [in,switch_is(level)] spoolss_UserLevel userlevel,
770 [out,ref] policy_handle *handle
775 WERROR spoolss_AddPrinterEx(
778 [in,switch_is(level)] spoolss_PrinterInfo *info,
779 [in] spoolss_DevmodeContainer devmode_ctr,
780 [in] security_descriptor *secdesc,
782 [in,switch_is(ulevel)] spoolss_UserLevel userlevel
792 WERROR spoolss_EnumPrinterData(
793 [in,ref] policy_handle *handle,
794 [in] uint32 enum_index,
795 [in] uint32 value_offered,
796 [out] lstring value_name,
797 [out] uint32 value_needed,
798 [out] uint32 printerdata_type,
799 [out] DATA_BLOB buffer,
800 [in,out,ref] uint32 *data_size
805 WERROR spoolss_DeletePrinterData(
806 [in,ref] policy_handle *handle,
807 [in] unistr value_name
827 WERROR spoolss_SetPrinterDataEx(
828 [in,ref] policy_handle *handle,
829 [in] unistr key_name,
830 [in] unistr value_name,
832 [in] DATA_BLOB buffer,
833 [in,out,ref] uint32 *buf_size
838 WERROR spoolss_GetPrinterDataEx(
839 [in,ref] policy_handle *handle,
840 [in] unistr key_name,
841 [in] unistr value_name,
843 [out] DATA_BLOB buffer,
844 [in,out,ref] uint32 *buf_size
849 WERROR spoolss_EnumPrinterDataEx(
850 [in,ref] policy_handle *handle,
851 [in] unistr key_name,
852 [out] DATA_BLOB buffer,
853 [in,out] uint32 buf_size,
859 WERROR spoolss_EnumPrinterKey(
864 WERROR spoolss_DeletePrinterDataEx(
865 [in,ref] policy_handle *handle,
866 [in] unistr key_name,
867 [in] unistr value_name
872 WERROR spoolss_DeletePrinterKey(
882 WERROR spoolss_DeletePrinterDriverEx(
907 WERROR spoolss_AddPrinterDriverEx(