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")
26 [relative] nstring *printername;
27 [relative] nstring *servername;
32 uint32 global_counter;
38 uint32 session_counter;
40 uint32 printer_errors;
55 } spoolss_PrinterInfo0;
58 uint16 devicename[32];
83 uint32 displayfrequency;
92 uint8 private[driverextra];
95 typedef [public] struct {
97 [relative] nstring *name;
98 [relative] nstring *description;
99 [relative] nstring *comment;
100 } spoolss_PrinterInfo1;
104 [relative] nstring *name;
113 typedef [public] struct {
114 [relative] nstring *servername;
115 [relative] nstring *printername;
116 [relative] nstring *sharename;
117 [relative] nstring *portname;
118 [relative] nstring *drivername;
119 [relative] nstring *comment;
120 [relative] nstring *location;
121 [relative] spoolss_DeviceMode *devmode;
122 [relative] nstring *sepfile;
123 [relative] nstring *printprocessor;
124 [relative] nstring *datatype;
125 [relative] nstring *parameters;
126 [relative,subcontext(0)] security_descriptor *secdesc;
129 uint32 defaultpriority;
135 } spoolss_PrinterInfo2;
139 [subcontext(0)] security_descriptor secdesc;
140 } spoolss_PrinterInfo3;
143 [relative] nstring *printername;
144 [relative] nstring *servername;
146 } spoolss_PrinterInfo4;
148 typedef [public] struct {
149 [relative] nstring *printername;
150 [relative] nstring *portname;
152 uint32 device_not_selected_timeout;
153 uint32 transmission_retry_timeout;
154 } spoolss_PrinterInfo5;
158 } spoolss_PrinterInfo6;
161 [relative] nstring *guid; /* text form of printer guid */
163 } spoolss_PrinterInfo7;
165 typedef [nodiscriminant,public] union {
166 [case(0)] spoolss_PrinterInfo0 info0;
167 [case(1)] spoolss_PrinterInfo1 info1;
168 [case(2)] spoolss_PrinterInfo2 info2;
169 [case(3)] spoolss_PrinterInfo3 info3;
170 [case(4)] spoolss_PrinterInfo4 info4;
171 [case(5)] spoolss_PrinterInfo5 info5;
172 [case(6)] spoolss_PrinterInfo6 info6;
173 [case(7)] spoolss_PrinterInfo7 info7;
174 } spoolss_PrinterInfo;
176 const int PRINTER_ENUM_DEFAULT = 0x00000001;
177 const int PRINTER_ENUM_LOCAL = 0x00000002;
178 const int PRINTER_ENUM_CONNECTIONS = 0x00000004;
179 const int PRINTER_ENUM_FAVORITE = 0x00000004;
180 const int PRINTER_ENUM_NAME = 0x00000008;
181 const int PRINTER_ENUM_REMOTE = 0x00000010;
182 const int PRINTER_ENUM_SHARED = 0x00000020;
183 const int PRINTER_ENUM_NETWORK = 0x00000040;
187 WERROR spoolss_EnumPrinters(
191 [in,out] DATA_BLOB *buffer,
192 [in,out,ref] uint32 *buf_size,
198 WERROR spoolss_OpenPrinter(
200 [in] unistr *printer,
201 [in] DATA_BLOB *buffer,
202 [in] uint32 access_mask,
203 [out,ref] policy_handle *handle
208 WERROR spoolss_SetJob(
209 [in,ref] policy_handle *handle,
217 WERROR spoolss_GetJob(
218 [in,ref] policy_handle *handle,
221 [in] DATA_BLOB *buffer,
222 [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info,
223 [in,out,ref] uint32 *buf_size
228 [relative] nstring printer_name;
229 [relative] nstring server_name;
230 [relative] nstring user_name;
231 [relative] nstring document_name;
232 [relative] nstring data_type;
233 [relative] nstring text_status;
238 uint32 pages_printed;
242 typedef [nodiscriminant,public] union {
243 [case(1)] spoolss_JobInfo1 info1;
248 WERROR spoolss_EnumJobs(
249 [in,ref] policy_handle *handle,
250 [in] uint32 firstjob,
253 [in,out] DATA_BLOB *buffer,
254 [in,out,ref] uint32 *buf_size,
260 WERROR spoolss_AddPrinter(
261 /* This function is not implemented in Samba 3 as no
262 clients have been observed using it. */
267 WERROR spoolss_DeletePrinter(
272 WERROR spoolss_SetPrinter(
277 WERROR spoolss_GetPrinter(
278 [in,ref] policy_handle *handle,
280 [in] DATA_BLOB *buffer,
281 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
282 [in,out,ref] uint32 *buf_size
287 WERROR spoolss_AddPrinterDriver(
291 [relative] nstring *driver_name;
292 } spoolss_DriverInfo1;
296 [relative] nstring *driver_name;
297 [relative] nstring *architecture;
298 [relative] nstring *driver_path;
299 [relative] nstring *data_file;
300 [relative] nstring *config_file;
301 } spoolss_DriverInfo2;
305 [relative] nstring *driver_name;
306 [relative] nstring *architecture;
307 [relative] nstring *driver_path;
308 [relative] nstring *data_file;
309 [relative] nstring *config_file;
310 [relative] nstring *help_file;
311 [relative] nstring *dependent_files; /* array */
312 [relative] nstring *monitor_name;
313 [relative] nstring *default_datatype;
314 } spoolss_DriverInfo3;
316 typedef [nodiscriminant,public] union {
317 [case(1)] spoolss_DriverInfo1 info1;
318 [case(2)] spoolss_DriverInfo2 info2;
319 [case(3)] spoolss_DriverInfo3 info3;
320 } spoolss_DriverInfo;
324 WERROR spoolss_EnumPrinterDrivers(
326 [in] unistr *environment,
328 [in,out] DATA_BLOB *buffer,
329 [in,out,ref] uint32 *buf_size,
335 WERROR spoolss_GetPrinterDriver(
340 WERROR spoolss_GetPrinterDriverDirectory(
345 WERROR spoolss_DeletePrinterDriver(
346 [in,ref] policy_handle *handle,
348 [in] unistr architecture,
354 WERROR spoolss_AddPrintProcessor(
359 WERROR spoolss_EnumPrintProcessors(
364 WERROR spoolss_GetPrintProcessorDirectory(
369 WERROR spoolss_StartDocPrinter(
374 WERROR spoolss_StartPagePrinter(
375 [in,ref] policy_handle *handle
380 WERROR spoolss_WritePrinter(
385 WERROR spoolss_EndPagePrinter(
386 [in,ref] policy_handle *handle
391 WERROR spoolss_AbortPrinter(
396 WERROR spoolss_ReadPrinter(
401 WERROR spoolss_EndDocPrinter(
406 WERROR spoolss_AddJob(
411 WERROR spoolss_ScheduleJob(
416 WERROR spoolss_GetPrinterData(
417 [in,ref] policy_handle *handle,
418 [in] unistr value_name,
420 [out] DATA_BLOB buffer,
421 [in,out,ref] uint32 *buf_size
426 WERROR spoolss_SetPrinterData(
427 [in,ref] policy_handle *handle,
428 [in] unistr value_name,
430 [in] DATA_BLOB buffer,
436 WERROR spoolss_WaitForPrinterChange(
441 WERROR spoolss_ClosePrinter(
442 [in,out,ref] policy_handle *handle
447 [relative] unistr *name;
454 } spoolss_AddFormInfo1;
457 [case(1)] spoolss_AddFormInfo1 *info1;
458 } spoolss_AddFormInfo;
462 WERROR spoolss_AddForm(
463 [in,ref] policy_handle *handle,
465 [in,switch_is(level)] spoolss_AddFormInfo info
470 WERROR spoolss_DeleteForm(
471 [in,ref] policy_handle *handle,
477 WERROR spoolss_GetForm(
478 [in,ref] policy_handle *handle,
479 [in] unistr formname,
481 [in] DATA_BLOB *buffer,
482 [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info,
483 [in,out,ref] uint32 *buf_size
488 WERROR spoolss_SetForm(
489 [in,ref] policy_handle *handle,
490 [in] unistr form_name,
492 [in,switch_is(level)] spoolss_AddFormInfo info
495 typedef [nodiscriminant,public] union {
496 [case(1)] spoolss_FormInfo1 info1;
501 WERROR spoolss_EnumForms(
502 [in,ref] policy_handle *handle,
504 [in,out] DATA_BLOB *buffer,
505 [in,out,ref] uint32 *buf_size,
509 typedef [flag(RELATIVE_CURRENT)] struct {
510 [relative] nstring *port_name;
514 [relative] nstring *port_name;
515 [relative] nstring *monitor_name;
516 [relative] nstring *description;
521 typedef [nondiscriminant,public] union {
522 [case(1)] spoolss_PortInfo1 info1;
523 [case(2)] spoolss_PortInfo2 info2;
528 WERROR spoolss_EnumPorts(
529 [in] unistr *servername,
531 [in,out] DATA_BLOB *buffer,
532 [in,out,ref] uint32 *buf_size,
538 WERROR spoolss_EnumMonitors(
543 WERROR spoolss_AddPort(
548 WERROR spoolss_ConfigurePort(
553 WERROR spoolss_DeletePort(
558 WERROR spoolss_CreatePrinterIC(
563 WERROR spoolss_PlayGDIScriptOnPrinterIC(
568 WERROR spoolss_DeletePrinterIC(
573 WERROR spoolss_AddPrinterConnection(
578 WERROR spoolss_DeletePrinterConnection(
583 WERROR spoolss_PrinterMessageBox(
584 /* Marked as obsolete in MSDN. "Not necessary and has
590 WERROR spoolss_AddMonitor(
595 WERROR spoolss_DeleteMonitor(
600 WERROR spoolss_DeletePrintProcessor(
605 WERROR spoolss_AddPrintProvidor(
610 WERROR spoolss_DeletePrintProvidor(
615 WERROR spoolss_EnumPrintProcDataTypes(
620 WERROR spoolss_ResetPrinter(
625 WERROR spoolss_GetPrinterDriver2(
626 [in,ref] policy_handle *handle,
627 [in] unistr *architecture,
629 [in,out] DATA_BLOB *buffer,
630 [in,out,ref] uint32 *buf_size,
631 [in] uint32 client_major_version,
632 [in] uint32 client_minor_version,
633 [out] uint32 server_major_version,
634 [out] uint32 server_minor_version
639 WERROR spoolss_FindFirstPrinterChangeNotification(
644 WERROR spoolss_FindNextPrinterChangeNotification(
649 WERROR spoolss_FindClosePrinterNotify(
654 WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
659 WERROR spoolss_ReplyOpenPrinter(
664 WERROR spoolss_RouterReplyPrinter(
669 WERROR spoolss_ReplyClosePrinter(
674 WERROR spoolss_AddPortEx(
679 WERROR spoolss_RouterFindFirstPrinterChangeNotification(
684 WERROR spoolss_SpoolerInit(
689 WERROR spoolss_ResetPrinterEx(
694 WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx(
699 WERROR spoolss_RouterRefreshPrinterChangeNotification(
704 WERROR spoolss_RemoteFindNextPrinterChangeNotifyEx(
718 spoolss_Devmode *devmode;
719 } spoolss_DevmodeContainer;
729 } spoolss_UserLevel1;
732 [case(1)] spoolss_UserLevel1 *level1;
737 WERROR spoolss_OpenPrinterEx(
738 [in] unistr *printername,
739 [in] unistr *datatype,
740 [in] spoolss_DevmodeContainer devmode_ctr,
741 [in] uint32 access_mask,
743 [in,switch_is(level)] spoolss_UserLevel userlevel,
744 [out,ref] policy_handle *handle
749 WERROR spoolss_AddPrinterEx(
752 [in,switch_is(level)] spoolss_PrinterInfo *info,
753 [in] spoolss_DevmodeContainer devmode_ctr,
754 [in] security_descriptor *secdesc,
756 [in,switch_is(ulevel)] spoolss_UserLevel userlevel
766 WERROR spoolss_EnumPrinterData(
767 [in,ref] policy_handle *handle,
768 [in] uint32 enum_index,
769 [in] uint32 value_offered,
770 [out] lstring value_name,
771 [out] uint32 value_needed,
772 [out] uint32 printerdata_type,
773 [out] DATA_BLOB data,
774 [in,out,ref] uint32 *data_size
779 WERROR spoolss_DeletePrinterData(
780 [in,ref] policy_handle *handle,
781 [in] unistr value_name
801 WERROR spoolss_SetPrinterDataEx(
802 [in,ref] policy_handle *handle,
803 [in] unistr key_name,
804 [in] unistr value_name,
806 [in] DATA_BLOB buffer,
807 [in,out,ref] uint32 *buf_size
812 WERROR spoolss_GetPrinterDataEx(
813 [in,ref] policy_handle *handle,
814 [in] unistr key_name,
815 [in] unistr value_name,
817 [out] DATA_BLOB buffer,
818 [in,out,ref] uint32 *buf_size
823 WERROR spoolss_EnumPrinterDataEx(
824 [in,ref] policy_handle *handle
829 WERROR spoolss_EnumPrinterKey(
834 WERROR spoolss_DeletePrinterDataEx(
835 [in,ref] policy_handle *handle,
836 [in] unistr key_name,
837 [in] unistr value_name
842 WERROR spoolss_DeletePrinterKey(
852 WERROR spoolss_DeletePrinterDriverEx(
877 WERROR spoolss_AddPrinterDriverEx(