4 spoolss interface definitions
7 [ uuid("12345678-1234-abcd-ef00-0123456789ab"),
9 endpoint("ncacn_np:[\\pipe\\spoolss]"),
10 pointer_default(unique),
11 pointer_default_top(unique),
12 helpstring("Spooler SubSystem"),
28 [relative] nstring *printername;
29 [relative] nstring *servername;
34 uint32 global_counter;
40 uint32 session_counter;
42 uint32 printer_errors;
57 } spoolss_PrinterInfo0;
64 [value(r->driverextra_data.length)] uint16 __driverextra_length;
85 uint32 displayfrequency;
94 [subcontext_size(__driverextra_length),subcontext(0),flag(NDR_REMAINING)] DATA_BLOB driverextra_data;
97 typedef [public] bitmap {
98 PRINTER_ENUM_DEFAULT = 0x00000001,
99 PRINTER_ENUM_LOCAL = 0x00000002,
100 PRINTER_ENUM_CONNECTIONS = 0x00000004,
101 PRINTER_ENUM_FAVORITE = 0x00000004,
102 PRINTER_ENUM_NAME = 0x00000008,
103 PRINTER_ENUM_REMOTE = 0x00000010,
104 PRINTER_ENUM_SHARED = 0x00000020,
105 PRINTER_ENUM_NETWORK = 0x00000040,
106 PRINTER_ENUM_EXPAND = 0x00004000,
107 PRINTER_ENUM_CONTAINER = 0x00008000,
108 PRINTER_ENUM_ICON1 = 0x00010000,
109 PRINTER_ENUM_ICON2 = 0x00020000,
110 PRINTER_ENUM_ICON3 = 0x00040000,
111 PRINTER_ENUM_ICON4 = 0x00080000,
112 PRINTER_ENUM_ICON5 = 0x00100000,
113 PRINTER_ENUM_ICON6 = 0x00200000,
114 PRINTER_ENUM_ICON7 = 0x00400000,
115 PRINTER_ENUM_ICON8 = 0x00800000,
116 PRINTER_ENUM_HIDE = 0x01000000
117 } spoolss_EnumPrinterFlags;
120 spoolss_EnumPrinterFlags flags;
121 [relative] nstring *name;
122 [relative] nstring *description;
123 [relative] nstring *comment;
124 } spoolss_PrinterInfo1;
127 PRINTER_ATTRIBUTE_QUEUED = 0x00000001,
128 PRINTER_ATTRIBUTE_DIRECT = 0x00000002,
129 PRINTER_ATTRIBUTE_DEFAULT = 0x00000004,
130 PRINTER_ATTRIBUTE_SHARED = 0x00000008,
131 PRINTER_ATTRIBUTE_NETWORK = 0x00000010,
132 PRINTER_ATTRIBUTE_HIDDEN = 0x00000020,
133 PRINTER_ATTRIBUTE_LOCAL = 0x00000040,
134 PRINTER_ATTRIBUTE_ENABLE_DEVQ = 0x00000080,
135 PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = 0x00000100,
136 PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = 0x00000200,
137 PRINTER_ATTRIBUTE_WORK_OFFLINE = 0x00000400,
138 PRINTER_ATTRIBUTE_ENABLE_BIDI = 0x00000800,
139 PRINTER_ATTRIBUTE_RAW_ONLY = 0x00001000,
140 PRINTER_ATTRIBUTE_PUBLISHED = 0x00002000,
141 PRINTER_ATTRIBUTE_FAX = 0x00004000,
142 PRINTER_ATTRIBUTE_TS = 0x00008000
143 } spoolss_PrinterAttributes;
146 PRINTER_STATUS_PAUSED = 0x00000001,
147 PRINTER_STATUS_ERROR = 0x00000002,
148 PRINTER_STATUS_PENDING_DELETION = 0x00000004,
149 PRINTER_STATUS_PAPER_JAM = 0x00000008,
150 PRINTER_STATUS_PAPER_OUT = 0x00000010,
151 PRINTER_STATUS_MANUAL_FEED = 0x00000020,
152 PRINTER_STATUS_PAPER_PROBLEM = 0x00000040,
153 PRINTER_STATUS_OFFLINE = 0x00000080,
154 PRINTER_STATUS_IO_ACTIVE = 0x00000100,
155 PRINTER_STATUS_BUSY = 0x00000200,
156 PRINTER_STATUS_PRINTING = 0x00000400,
157 PRINTER_STATUS_OUTPUT_BIN_FULL = 0x00000800,
158 PRINTER_STATUS_NOT_AVAILABLE = 0x00001000,
159 PRINTER_STATUS_WAITING = 0x00002000,
160 PRINTER_STATUS_PROCESSING = 0x00004000,
161 PRINTER_STATUS_INITIALIZING = 0x00008000,
162 PRINTER_STATUS_WARMING_UP = 0x00010000,
163 PRINTER_STATUS_TONER_LOW = 0x00020000,
164 PRINTER_STATUS_NO_TONER = 0x00040000,
165 PRINTER_STATUS_PAGE_PUNT = 0x00080000,
166 PRINTER_STATUS_USER_INTERVENTION= 0x00100000,
167 PRINTER_STATUS_OUT_OF_MEMORY = 0x00200000,
168 PRINTER_STATUS_DOOR_OPEN = 0x00400000,
169 PRINTER_STATUS_SERVER_UNKNOWN = 0x00800000,
170 PRINTER_STATUS_POWER_SAVE = 0x01000000
171 } spoolss_PrinterStatus;
174 [relative] nstring *servername;
175 [relative] nstring *printername;
176 [relative] nstring *sharename;
177 [relative] nstring *portname;
178 [relative] nstring *drivername;
179 [relative] nstring *comment;
180 [relative] nstring *location;
181 [relative,subcontext(0)] spoolss_DeviceMode *devmode;
182 [relative] nstring *sepfile;
183 [relative] nstring *printprocessor;
184 [relative] nstring *datatype;
185 [relative] nstring *parameters;
186 [relative,subcontext(0)] security_descriptor *secdesc;
187 spoolss_PrinterAttributes attributes;
189 uint32 defaultpriority;
192 spoolss_PrinterStatus status;
195 } spoolss_PrinterInfo2;
198 [relative,subcontext(0)] security_descriptor *secdesc;
199 } spoolss_PrinterInfo3;
202 [relative] nstring *printername;
203 [relative] nstring *servername;
204 spoolss_PrinterAttributes attributes;
205 } spoolss_PrinterInfo4;
208 [relative] nstring *printername;
209 [relative] nstring *portname;
210 spoolss_PrinterAttributes attributes;
211 uint32 device_not_selected_timeout;
212 uint32 transmission_retry_timeout;
213 } spoolss_PrinterInfo5;
216 spoolss_PrinterStatus status;
217 } spoolss_PrinterInfo6;
220 DSPRINT_PUBLISH = 0x00000001,
221 DSPRINT_UPDATE = 0x00000002,
222 DSPRINT_UNPUBLISH = 0x00000004,
223 DSPRINT_REPUBLISH = 0x00000008,
224 DSPRINT_PENDING = 0x80000000
225 } spoolss_DsPrintAction;
228 [relative] nstring *guid; /* text form of printer guid */
229 spoolss_DsPrintAction action;
230 } spoolss_PrinterInfo7;
233 [relative,subcontext(0)] spoolss_DeviceMode *devmode;
234 } spoolss_DeviceModeInfo;
236 typedef [nodiscriminant,relative_base,public] union {
237 [case(0)] spoolss_PrinterInfo0 info0;
238 [case(1)] spoolss_PrinterInfo1 info1;
239 [case(2)] spoolss_PrinterInfo2 info2;
240 [case(3)] spoolss_PrinterInfo3 info3;
241 [case(4)] spoolss_PrinterInfo4 info4;
242 [case(5)] spoolss_PrinterInfo5 info5;
243 [case(6)] spoolss_PrinterInfo6 info6;
244 [case(7)] spoolss_PrinterInfo7 info7;
245 [case(8)] spoolss_DeviceModeInfo info8;
246 [case(9)] spoolss_DeviceModeInfo info9;
248 } spoolss_PrinterInfo;
252 /* we are using this as internal parsing code */
253 [public,noopnum,noprint] WERROR _spoolss_EnumPrinters(
254 [in] spoolss_EnumPrinterFlags flags,
257 [in,out] DATA_BLOB *buffer,
258 [in,out,ref] uint32 *buf_size,
261 [public,noopnum,noprint] void __spoolss_EnumPrinters(
264 [out,switch_is(level)] spoolss_PrinterInfo info[count]
266 [nopull,nopush] WERROR spoolss_EnumPrinters(
267 [in] spoolss_EnumPrinterFlags flags,
270 [in] DATA_BLOB *buffer,
271 /* what we have here is a subcontext containing an array of no discriminant unions
272 * and the array has no size in front
274 [out,switch_is(level),size_is(count)] spoolss_PrinterInfo *info,
275 [in,out,ref] uint32 *buf_size,
283 [subcontext(4),subcontext_size(size)] spoolss_DeviceMode *devmode;
284 } spoolss_DevmodeContainer;
286 WERROR spoolss_OpenPrinter(
287 [in] unistr *printername,
288 [in] unistr *datatype,
289 [in] spoolss_DevmodeContainer devmode_ctr,
290 [in] uint32 access_mask,
291 [out,ref] policy_handle *handle
298 [relative] nstring *printer_name;
299 [relative] nstring *server_name;
300 [relative] nstring *user_name;
301 [relative] nstring *document_name;
302 [relative] nstring *data_type;
303 [relative] nstring *text_status;
308 uint32 pages_printed;
312 typedef [nodiscriminant,relative_base,public] union {
313 [case(1)] spoolss_JobInfo1 info1;
314 [case(2)]; /* TODO */
315 [case(3)]; /* TODO */
321 [switch_is(level)] spoolss_JobInfo info;
322 } spoolss_JobInfoContainer;
324 typedef [v1_enum] enum {
325 SPOOLSS_JOB_CONTROL_PAUSE = 1,
326 SPOOLSS_JOB_CONTROL_RESUME = 2,
327 SPOOLSS_JOB_CONTROL_CANCEL = 3,
328 SPOOLSS_JOB_CONTROL_RESTART = 4,
329 SPOOLSS_JOB_CONTROL_DELETE = 5,
330 SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER = 6,
331 SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED = 7
332 } spoolss_JobControl;
334 WERROR spoolss_SetJob(
335 [in,ref] policy_handle *handle,
337 [in] spoolss_JobInfoContainer *ctr,
338 [in] spoolss_JobControl command
343 WERROR spoolss_GetJob(
344 [in,ref] policy_handle *handle,
347 [in] DATA_BLOB *buffer,
348 [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info,
349 [in,out,ref] uint32 *buf_size
354 [public,noopnum,noprint] WERROR _spoolss_EnumJobs(
355 [in,ref] policy_handle *handle,
356 [in] uint32 firstjob,
359 [in,out] DATA_BLOB *buffer,
360 [in,out,ref] uint32 *buf_size,
363 [public,noopnum,noprint] void __spoolss_EnumJobs(
366 [out,switch_is(level)] spoolss_JobInfo info[count]
368 [nopull,nopush] WERROR spoolss_EnumJobs(
369 [in,ref] policy_handle *handle,
370 [in] uint32 firstjob,
373 [in] DATA_BLOB *buffer,
374 [out,switch_is(level),size_is(count)] spoolss_JobInfo *info,
375 [in,out,ref] uint32 *buf_size,
381 WERROR spoolss_AddPrinter(
382 /* This function is not implemented in Samba 3 as no
383 clients have been observed using it. */
388 WERROR spoolss_DeletePrinter(
393 typedef [v1_enum] enum {
394 SPOOLSS_PRINTER_CONTROL_UNPAUSE = 0,
395 SPOOLSS_PRINTER_CONTROL_PAUSE = 1,
396 SPOOLSS_PRINTER_CONTROL_RESUME = 2,
397 SPOOLSS_PRINTER_CONTROL_PURGE = 3,
398 SPOOLSS_PRINTER_CONTROL_SET_STATUS = 4
399 } spoolss_PrinterControl;
401 typedef [switch_type(uint32)] union {
402 [case(0)] spoolss_PrinterInfo0 *info0;
403 [case(1)] spoolss_PrinterInfo1 *info1;
404 [case(2)] spoolss_PrinterInfo2 *info2;
405 [case(3)] spoolss_PrinterInfo3 *info3;
406 [case(4)] spoolss_PrinterInfo4 *info4;
407 [case(5)] spoolss_PrinterInfo5 *info5;
408 [case(6)] spoolss_PrinterInfo6 *info6;
409 [case(7)] spoolss_PrinterInfo7 *info7;
410 [case(8)] spoolss_DeviceModeInfo *info8;
411 [case(9)] spoolss_DeviceModeInfo *info9;
413 } spoolss_SetPrinterInfo;
417 [subcontext(4),subcontext_size(size)] security_descriptor *sd;
418 } spoolss_SecDescContainer;
420 WERROR spoolss_SetPrinter(
421 [in,ref] policy_handle *handle,
423 [in,switch_is(level)] spoolss_SetPrinterInfo info,
424 [in] spoolss_DevmodeContainer devmode_ctr,
425 [in] spoolss_SecDescContainer secdesc_ctr,
426 [in] spoolss_PrinterControl command
431 WERROR spoolss_GetPrinter(
432 [in,ref] policy_handle *handle,
434 [in] DATA_BLOB *buffer,
435 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
436 [in,out,ref] uint32 *buf_size
441 WERROR spoolss_AddPrinterDriver(
445 [relative] nstring *driver_name;
446 } spoolss_DriverInfo1;
448 typedef [v1_enum] enum {
449 SPOOLSS_DRIVER_VERSION_9X = 0,
450 SPOOLSS_DRIVER_VERSION_NT35 = 1,
451 SPOOLSS_DRIVER_VERSION_NT4 = 2,
452 SPOOLSS_DRIVER_VERSION_200X = 3
453 } spoolss_DriverOSVersion;
456 spoolss_DriverOSVersion version;
457 [relative] nstring *driver_name;
458 [relative] nstring *architecture;
459 [relative] nstring *driver_path;
460 [relative] nstring *data_file;
461 [relative] nstring *config_file;
462 } spoolss_DriverInfo2;
465 spoolss_DriverOSVersion version;
466 [relative] nstring *driver_name;
467 [relative] nstring *architecture;
468 [relative] nstring *driver_path;
469 [relative] nstring *data_file;
470 [relative] nstring *config_file;
471 [relative] nstring *help_file;
472 [relative] nstring_array *dependent_files;
473 [relative] nstring *monitor_name;
474 [relative] nstring *default_datatype;
475 } spoolss_DriverInfo3;
478 spoolss_DriverOSVersion version;
479 [relative] nstring *driver_name;
480 [relative] nstring *architecture;
481 [relative] nstring *driver_path;
482 [relative] nstring *data_file;
483 [relative] nstring *config_file;
484 [relative] nstring *help_file;
485 [relative] nstring_array *dependent_files;
486 [relative] nstring *monitor_name;
487 [relative] nstring *default_datatype;
488 [relative] nstring_array *previous_names;
489 } spoolss_DriverInfo4;
492 spoolss_DriverOSVersion version;
493 [relative] nstring *driver_name;
494 [relative] nstring *architecture;
495 [relative] nstring *driver_path;
496 [relative] nstring *data_file;
497 [relative] nstring *config_file;
498 uint32 driver_attributes;
499 uint32 config_version;
500 uint32 driver_version;
501 } spoolss_DriverInfo5;
504 spoolss_DriverOSVersion version;
505 [relative] nstring *driver_name;
506 [relative] nstring *architecture;
507 [relative] nstring *driver_path;
508 [relative] nstring *data_file;
509 [relative] nstring *config_file;
510 [relative] nstring *help_file;
511 [relative] nstring_array *dependent_files;
512 [relative] nstring *monitor_name;
513 [relative] nstring *default_datatype;
514 [relative] nstring_array *previous_names;
516 hyper driver_version;
517 [relative] nstring *manufacturer_name;
518 [relative] nstring *manufacturer_url;
519 [relative] nstring *hardware_id;
520 [relative] nstring *provider;
521 } spoolss_DriverInfo6;
523 typedef [nodiscriminant,relative_base,public] union {
524 [case(1)] spoolss_DriverInfo1 info1;
525 [case(2)] spoolss_DriverInfo2 info2;
526 [case(3)] spoolss_DriverInfo3 info3;
527 [case(4)] spoolss_DriverInfo4 info4;
528 [case(5)] spoolss_DriverInfo5 info5;
529 [case(6)] spoolss_DriverInfo6 info6;
531 } spoolss_DriverInfo;
535 [public,noopnum,noprint] WERROR _spoolss_EnumPrinterDrivers(
537 [in] unistr *environment,
539 [in,out] DATA_BLOB *buffer,
540 [in,out,ref] uint32 *buf_size,
543 [public,noopnum,noprint] void __spoolss_EnumPrinterDrivers(
546 [out,switch_is(level)] spoolss_DriverInfo info[count]
548 [nopull,nopush] WERROR spoolss_EnumPrinterDrivers(
550 [in] unistr *environment,
552 [in] DATA_BLOB *buffer,
553 [out,switch_is(level),size_is(count)] spoolss_DriverInfo *info,
554 [in,out,ref] uint32 *buf_size,
560 WERROR spoolss_GetPrinterDriver(
565 WERROR spoolss_GetPrinterDriverDirectory(
570 WERROR spoolss_DeletePrinterDriver(
571 [in,ref] policy_handle *handle,
573 [in] unistr architecture,
579 WERROR spoolss_AddPrintProcessor(
585 [relative] nstring *print_processor_name;
586 } spoolss_PrintProcessorInfo1;
588 typedef [nodiscriminant,relative_base,public] union {
589 [case(1)] spoolss_PrintProcessorInfo1 info1;
591 } spoolss_PrintProcessorInfo;
593 [public,noopnum,noprint] WERROR _spoolss_EnumPrintProcessors(
594 [in] unistr *servername,
595 [in] unistr *environment,
597 [in,out] DATA_BLOB *buffer,
598 [in,out,ref] uint32 *buf_size,
601 [public,noopnum,noprint] void __spoolss_EnumPrintProcessors(
604 [out,switch_is(level)] spoolss_PrintProcessorInfo info[count]
606 [nopull,nopush] WERROR spoolss_EnumPrintProcessors(
607 [in] unistr *servername,
608 [in] unistr *environment,
610 [in] DATA_BLOB *buffer,
611 [out,switch_is(level),size_is(count)] spoolss_PrintProcessorInfo *info,
612 [in,out,ref] uint32 *buf_size,
618 WERROR spoolss_GetPrintProcessorDirectory(
624 unistr *document_name;
627 } spoolss_DocumentInfo1;
629 typedef [switch_type(uint32)] union {
630 [case(1)] spoolss_DocumentInfo1 *info1;
631 [case(2)]; /* TODO */
632 [case(3)]; /* TODO */
634 } spoolss_DocumentInfo;
636 WERROR spoolss_StartDocPrinter(
637 [in,ref] policy_handle *handle,
639 [in,switch_is(level)] spoolss_DocumentInfo info,
645 WERROR spoolss_StartPagePrinter(
646 [in,ref] policy_handle *handle
651 WERROR spoolss_WritePrinter(
652 [in,ref] policy_handle *handle,
654 [in,value(r->in.data.length)] uint32 _data_size,
655 [out] uint32 num_written
660 WERROR spoolss_EndPagePrinter(
661 [in,ref] policy_handle *handle
666 WERROR spoolss_AbortPrinter(
667 [in,ref] policy_handle *handle
672 WERROR spoolss_ReadPrinter(
673 [in,ref] policy_handle *handle,
674 [in] uint32 data_size,
675 [out] DATA_BLOB data,
676 [out,value(r->out.data.length)] uint32 _data_size
681 WERROR spoolss_EndDocPrinter(
682 [in,ref] policy_handle *handle
687 WERROR spoolss_AddJob(
692 WERROR spoolss_ScheduleJob(
697 const string SPOOLSS_ARCHITECTURE_NT_X86 = "Windows NT x86";
699 typedef [v1_enum] enum {
700 SPOOLSS_PRINTER_DATA_TYPE_NULL = 0,
701 SPOOLSS_PRINTER_DATA_TYPE_STRING = 1,
702 SPOOLSS_PRINTER_DATA_TYPE_UINT32 = 4
703 } spoolss_PrinterDataType;
705 typedef [nodiscriminant,gensize] union {
706 [case(SPOOLSS_PRINTER_DATA_TYPE_NULL)];
707 [case(SPOOLSS_PRINTER_DATA_TYPE_STRING)] nstring string;
708 [case(SPOOLSS_PRINTER_DATA_TYPE_UINT32)] uint32 value;
709 [default,flag(NDR_REMAINING)] DATA_BLOB data;
710 } spoolss_PrinterData;
712 [noopnum,nopush,noprint,public] WERROR _spoolss_GetPrinterData(
713 [in,ref] policy_handle *handle,
714 [in] unistr value_name,
715 [out] spoolss_PrinterDataType type,
716 [out] DATA_BLOB data,
717 [in,out,ref] uint32 *buf_size
719 [noopnum,nopush,noprint,public] void __spoolss_GetPrinterData(
720 [in] spoolss_PrinterDataType type,
721 [out,switch_is(type)] spoolss_PrinterData data
723 [nopull] WERROR spoolss_GetPrinterData(
724 [in,ref] policy_handle *handle,
725 [in] unistr value_name,
726 [out] spoolss_PrinterDataType type,
727 [out,subcontext(4),switch_is(type)] spoolss_PrinterData data,
728 [in,out,ref] uint32 *buf_size
733 [noopnum,nopull,noprint,public] WERROR _spoolss_SetPrinterData(
734 [in,ref] policy_handle *handle,
735 [in] unistr value_name,
736 [in] spoolss_PrinterDataType type,
738 [in] uint32 _buf_size
740 [noopnum,nopull,noprint,public] void __spoolss_SetPrinterData(
741 [in] spoolss_PrinterDataType type,
742 [out,switch_is(type)] spoolss_PrinterData data
744 [nopush] WERROR spoolss_SetPrinterData(
745 [in,ref] policy_handle *handle,
746 [in] unistr value_name,
747 [in] spoolss_PrinterDataType type,
748 [in,subcontext(4),switch_is(type)] spoolss_PrinterData data,
749 [in,value(ndr_size_spoolss_PrinterData(&data,type,flags))] uint32 _buf_size
754 WERROR spoolss_WaitForPrinterChange(
759 WERROR spoolss_ClosePrinter(
760 [in,out,ref] policy_handle *handle
765 typedef [v1_enum] enum {
766 SPOOLSS_FORM_USER = 0,
767 SPOOLSS_FORM_BUILTIN = 1,
768 SPOOLSS_FORM_PRINTER = 2
784 spoolss_FormFlags flags;
785 [relative] unistr *form_name;
786 spoolss_FormSize size;
787 spoolss_FormArea area;
788 } spoolss_AddFormInfo1;
790 typedef [switch_type(uint32)] union {
791 [case(1)] spoolss_AddFormInfo1 *info1;
792 } spoolss_AddFormInfo;
794 WERROR spoolss_AddForm(
795 [in,ref] policy_handle *handle,
797 [in,switch_is(level)] spoolss_AddFormInfo info
802 WERROR spoolss_DeleteForm(
803 [in,ref] policy_handle *handle,
804 [in] unistr form_name
810 spoolss_FormFlags flags;
811 [relative] nstring *form_name;
812 spoolss_FormSize size;
813 spoolss_FormArea area;
816 WERROR spoolss_GetForm(
817 [in,ref] policy_handle *handle,
818 [in] unistr form_name,
820 [in] DATA_BLOB *buffer,
821 [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info,
822 [in,out,ref] uint32 *buf_size
826 spoolss_FormFlags flags;
828 spoolss_FormSize size;
829 spoolss_FormArea area;
830 } spoolss_SetFormInfo1;
832 typedef [switch_type(uint32)] union {
833 [case(1)] spoolss_SetFormInfo1 *info1;
834 } spoolss_SetFormInfo;
838 WERROR spoolss_SetForm(
839 [in,ref] policy_handle *handle,
840 [in] unistr form_name,
842 [in,switch_is(level)] spoolss_SetFormInfo info
845 typedef [nodiscriminant,relative_base,public] union {
846 [case(1)] spoolss_FormInfo1 info1;
852 [public,noopnum,noprint] WERROR _spoolss_EnumForms(
853 [in,ref] policy_handle *handle,
855 [in,out] DATA_BLOB *buffer,
856 [in,out,ref] uint32 *buf_size,
859 [public,noopnum,noprint] void __spoolss_EnumForms(
862 [out,switch_is(level)] spoolss_FormInfo info[count]
864 [nopull,nopush] WERROR spoolss_EnumForms(
865 [in,ref] policy_handle *handle,
867 [in] DATA_BLOB *buffer,
868 [out,switch_is(level),size_is(count)] spoolss_FormInfo *info,
869 [in,out,ref] uint32 *buf_size,
874 [relative] nstring *port_name;
878 SPOOLSS_PORT_TYPE_WRITE = 0x00000001,
879 SPOOLSS_PORT_TYPE_READ = 0x00000002,
880 SPOOLSS_PORT_TYPE_REDIRECTED = 0x00000004,
881 SPOOLSS_PORT_TYPE_NET_ATTACHED = 0x00000008
885 [relative] nstring *port_name;
886 [relative] nstring *monitor_name;
887 [relative] nstring *description;
888 spoolss_PortType port_type;
892 typedef [nodiscriminant,relative_base,public] union {
893 [case(1)] spoolss_PortInfo1 info1;
894 [case(2)] spoolss_PortInfo2 info2;
895 [case(3)]; /* TODO */
901 [public,noopnum,noprint] WERROR _spoolss_EnumPorts(
902 [in] unistr *servername,
904 [in,out] DATA_BLOB *buffer,
905 [in,out,ref] uint32 *buf_size,
908 [public,noopnum,noprint] void __spoolss_EnumPorts(
911 [out,switch_is(level)] spoolss_PortInfo info[count]
913 [nopull,nopush] WERROR spoolss_EnumPorts(
914 [in] unistr *servername,
916 [in] DATA_BLOB *buffer,
917 [out,switch_is(level),size_is(count)] spoolss_PortInfo *info,
918 [in,out,ref] uint32 *buf_size,
925 [relative] nstring *monitor_name;
926 } spoolss_MonitorInfo1;
929 [relative] nstring *monitor_name;
930 [relative] nstring *environment;
931 [relative] nstring *dll_name;
932 } spoolss_MonitorInfo2;
934 typedef [nodiscriminant,relative_base,public] union {
935 [case(1)] spoolss_MonitorInfo1 info1;
936 [case(2)] spoolss_MonitorInfo2 info2;
938 } spoolss_MonitorInfo;
940 [public,noopnum,noprint] WERROR _spoolss_EnumMonitors(
941 [in] unistr *servername,
943 [in,out] DATA_BLOB *buffer,
944 [in,out,ref] uint32 *buf_size,
947 [public,noopnum,noprint] void __spoolss_EnumMonitors(
950 [out,switch_is(level)] spoolss_MonitorInfo info[count]
952 [nopull,nopush] WERROR spoolss_EnumMonitors(
953 [in] unistr *servername,
955 [in] DATA_BLOB *buffer,
956 [out,switch_is(level),size_is(count)] spoolss_MonitorInfo *info,
957 [in,out,ref] uint32 *buf_size,
963 WERROR spoolss_AddPort(
964 [in] unistr *server_name,
966 [in] unistr monitor_name
971 WERROR spoolss_ConfigurePort(
976 WERROR spoolss_DeletePort(
981 WERROR spoolss_CreatePrinterIC(
986 WERROR spoolss_PlayGDIScriptOnPrinterIC(
991 WERROR spoolss_DeletePrinterIC(
996 WERROR spoolss_AddPrinterConnection(
1000 /* Function: 0x2c */
1001 WERROR spoolss_DeletePrinterConnection(
1004 /******************/
1005 /* Function: 0x2d */
1006 WERROR spoolss_PrinterMessageBox(
1007 /* Marked as obsolete in MSDN. "Not necessary and has
1011 /******************/
1012 /* Function: 0x2e */
1013 WERROR spoolss_AddMonitor(
1016 /******************/
1017 /* Function: 0x2f */
1018 WERROR spoolss_DeleteMonitor(
1021 /******************/
1022 /* Function: 0x30 */
1023 WERROR spoolss_DeletePrintProcessor(
1026 /******************/
1027 /* Function: 0x31 */
1028 WERROR spoolss_AddPrintProvidor(
1031 /******************/
1032 /* Function: 0x32 */
1033 WERROR spoolss_DeletePrintProvidor(
1036 /******************/
1037 /* Function: 0x33 */
1038 WERROR spoolss_EnumPrintProcDataTypes(
1041 /******************/
1042 /* Function: 0x34 */
1043 WERROR spoolss_ResetPrinter(
1046 /******************/
1047 /* Function: 0x35 */
1048 WERROR spoolss_GetPrinterDriver2(
1049 [in,ref] policy_handle *handle,
1050 [in] unistr *architecture,
1052 [in,out] DATA_BLOB *buffer,
1053 [in,out,ref] uint32 *buf_size,
1054 [in] uint32 client_major_version,
1055 [in] uint32 client_minor_version,
1056 [out] uint32 server_major_version,
1057 [out] uint32 server_minor_version
1060 /******************/
1061 /* Function: 0x36 */
1062 WERROR spoolss_FindFirstPrinterChangeNotification(
1065 /******************/
1066 /* Function: 0x37 */
1067 WERROR spoolss_FindNextPrinterChangeNotification(
1070 /******************/
1071 /* Function: 0x38 */
1072 WERROR spoolss_FindClosePrinterNotify(
1075 /******************/
1076 /* Function: 0x39 */
1077 WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
1080 /******************/
1081 /* Function: 0x3a */
1082 WERROR spoolss_ReplyOpenPrinter(
1085 /******************/
1086 /* Function: 0x3b */
1087 WERROR spoolss_RouterReplyPrinter(
1090 /******************/
1091 /* Function: 0x3c */
1092 WERROR spoolss_ReplyClosePrinter(
1095 /******************/
1096 /* Function: 0x3d */
1097 WERROR spoolss_AddPortEx(
1100 /******************/
1101 /* Function: 0x3e */
1102 WERROR spoolss_RouterFindFirstPrinterChangeNotification(
1105 /******************/
1106 /* Function: 0x3f */
1107 WERROR spoolss_SpoolerInit(
1110 /******************/
1111 /* Function: 0x40 */
1112 WERROR spoolss_ResetPrinterEx(
1115 /******************/
1116 /* Function: 0x41 */
1117 typedef [flag(NDR_PAHEX)] struct {
1123 [size_is(count)] uint16 *array;
1124 } spoolss_RemoteFindFirstPrinterChangeNotifyEx_t2;
1130 [size_is(count)] spoolss_RemoteFindFirstPrinterChangeNotifyEx_t2 *t2;
1131 } spoolss_RemoteFindFirstPrinterChangeNotifyEx_t1;
1133 WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx(
1134 [in,ref] policy_handle *handle,
1139 [in] spoolss_RemoteFindFirstPrinterChangeNotifyEx_t1 *t1
1142 /******************/
1143 /* Function: 0x42 */
1144 WERROR spoolss_RouterRefreshPrinterChangeNotification(
1147 /******************/
1148 /* Function: 0x43 */
1149 WERROR spoolss_RemoteFindNextPrinterChangeNotifyEx(
1152 /******************/
1153 /* Function: 0x44 */
1165 } spoolss_UserLevel1;
1168 [case(1)] spoolss_UserLevel1 *level1;
1169 } spoolss_UserLevel;
1171 /******************/
1172 /* Function: 0x45 */
1173 WERROR spoolss_OpenPrinterEx(
1174 [in] unistr *printername,
1175 [in] unistr *datatype,
1176 [in] spoolss_DevmodeContainer devmode_ctr,
1177 [in] uint32 access_mask,
1179 [in,switch_is(level)] spoolss_UserLevel userlevel,
1180 [out,ref] policy_handle *handle
1183 /******************/
1184 /* Function: 0x46 */
1185 WERROR spoolss_AddPrinterEx(
1186 [in] unistr *server,
1188 [in,switch_is(level)] spoolss_PrinterInfo *info,
1189 [in] spoolss_DevmodeContainer devmode_ctr,
1190 [in] security_descriptor *secdesc,
1192 [in,switch_is(ulevel)] spoolss_UserLevel userlevel
1195 /******************/
1196 /* Function: 0x47 */
1200 /******************/
1201 /* Function: 0x48 */
1202 WERROR spoolss_EnumPrinterData(
1203 [in,ref] policy_handle *handle,
1204 [in] uint32 enum_index,
1205 [in] uint32 value_offered,
1206 [out] lstring value_name,
1207 [out] uint32 value_needed,
1208 [out] uint32 printerdata_type,
1209 [out] DATA_BLOB buffer,
1210 [in,out,ref] uint32 *data_size
1213 /******************/
1214 /* Function: 0x49 */
1215 WERROR spoolss_DeletePrinterData(
1216 [in,ref] policy_handle *handle,
1217 [in] unistr value_name
1220 /******************/
1221 /* Function: 0x4a */
1225 /******************/
1226 /* Function: 0x4b */
1230 /******************/
1231 /* Function: 0x4c */
1235 /******************/
1236 /* Function: 0x4d */
1237 WERROR spoolss_SetPrinterDataEx(
1238 [in,ref] policy_handle *handle,
1239 [in] unistr key_name,
1240 [in] unistr value_name,
1242 [in] DATA_BLOB buffer,
1243 [in,out,ref] uint32 *buf_size
1246 /******************/
1247 /* Function: 0x4e */
1248 WERROR spoolss_GetPrinterDataEx(
1249 [in,ref] policy_handle *handle,
1250 [in] unistr key_name,
1251 [in] unistr value_name,
1253 [out] DATA_BLOB buffer,
1254 [in,out,ref] uint32 *buf_size
1257 /******************/
1258 /* Function: 0x4f */
1259 WERROR spoolss_EnumPrinterDataEx(
1260 [in,ref] policy_handle *handle,
1261 [in] unistr key_name,
1262 [out] DATA_BLOB buffer,
1263 [in,out] uint32 buf_size,
1267 /******************/
1268 /* Function: 0x50 */
1269 WERROR spoolss_EnumPrinterKey(
1272 /******************/
1273 /* Function: 0x51 */
1274 WERROR spoolss_DeletePrinterDataEx(
1275 [in,ref] policy_handle *handle,
1276 [in] unistr key_name,
1277 [in] unistr value_name
1280 /******************/
1281 /* Function: 0x52 */
1282 WERROR spoolss_DeletePrinterKey(
1285 /******************/
1286 /* Function: 0x53 */
1290 /******************/
1291 /* Function: 0x54 */
1292 WERROR spoolss_DeletePrinterDriverEx(
1295 /******************/
1296 /* Function: 0x55 */
1300 /******************/
1301 /* Function: 0x56 */
1305 /******************/
1306 /* Function: 0x57 */
1310 /******************/
1311 /* Function: 0x58 */
1315 /******************/
1316 /* Function: 0x59 */
1317 WERROR spoolss_AddPrinterDriverEx(
1320 /******************/
1321 /* Function: 0x5a */
1325 /******************/
1326 /* Function: 0x5b */
1330 /******************/
1331 /* Function: 0x5c */
1335 /******************/
1336 /* Function: 0x5d */
1340 /******************/
1341 /* Function: 0x5e */
1345 /******************/
1346 /* Function: 0x5f */