]> git.samba.org - jelmer/samba4-debian.git/blob - source/librpc/idl/spoolss.idl
0dec162763dbfe39a98d68591a8f1d6a8b17f13f
[jelmer/samba4-debian.git] / source / librpc / idl / spoolss.idl
1 #include "idl_types.h"
2
3 /*
4   spoolss interface definitions
5 */
6
7 [ uuid("12345678-1234-abcd-ef00-0123456789ab"),
8   version(1.0),
9   endpoint("ncacn_np:[\\pipe\\spoolss]"),
10   pointer_default(unique),
11   pointer_default_top(unique),
12   helpstring("Spooler SubSystem"),
13   depends(security)
14 ] interface spoolss
15 {
16         typedef struct {
17                 uint16 year;
18                 uint16 month;
19                 uint16 day_of_week;
20                 uint16 day;
21                 uint16 hour;
22                 uint16 minute;
23                 uint16 second;
24                 uint16 millisecond;
25         } spoolss_Time;
26
27         typedef struct {
28                 [relative] nstring *printername;
29                 [relative] nstring *servername;
30                 uint32 cjobs;
31                 uint32 total_jobs;
32                 uint32 total_bytes;
33                 spoolss_Time time;              
34                 uint32 global_counter;
35                 uint32 total_pages;
36                 uint32 version;
37                 uint32 unknown10;
38                 uint32 unknown11;
39                 uint32 unknown12;
40                 uint32 session_counter;
41                 uint32 unknown14;
42                 uint32 printer_errors;
43                 uint32 unknown16;
44                 uint32 unknown17;
45                 uint32 unknown18;
46                 uint32 unknown19;
47                 uint32 change_id;
48                 uint32 unknown21;
49                 uint32 status;
50                 uint32 unknown23;
51                 uint32 c_setprinter;
52                 uint16 unknown25;
53                 uint16 unknown26;
54                 uint32 unknown27;
55                 uint32 unknown28;
56                 uint32 unknown29;
57         } spoolss_PrinterInfo0;
58
59         typedef [gensize] struct {
60                 string32 devicename;
61                 uint16 specversion;
62                 uint16 driverversion;
63                 uint16 size;
64                 [value(r->driverextra_data.length)] uint16 __driverextra_length;
65                 uint32 fields;
66                 uint16 orientation;
67                 uint16 papersize;
68                 uint16 paperlength;
69                 uint16 paperwidth;
70                 uint16 scale;
71                 uint16 copies;
72                 uint16 defaultsource;
73                 uint16 printquality;
74                 uint16 color;
75                 uint16 duplex;
76                 uint16 yresolution;
77                 uint16 ttoption;
78                 uint16 collate;
79                 string32 formname;
80                 uint16 logpixels;
81                 uint32 bitsperpel;
82                 uint32 pelswidth;
83                 uint32 pelsheight;
84                 uint32 displayflags;
85                 uint32 displayfrequency;
86                 uint32 icmmethod;
87                 uint32 icmintent;
88                 uint32 mediatype;
89                 uint32 dithertype;
90                 uint32 reserved1;
91                 uint32 reserved2;
92                 uint32 panningwidth;
93                 uint32 panningheight;
94                 [subcontext_size(__driverextra_length),subcontext(0),flag(NDR_REMAINING)] DATA_BLOB driverextra_data;
95         } spoolss_DeviceMode;
96
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;
118
119         typedef struct {
120                 spoolss_EnumPrinterFlags flags;
121                 [relative] nstring *name;
122                 [relative] nstring *description;
123                 [relative] nstring *comment;
124         } spoolss_PrinterInfo1;
125
126         typedef bitmap {
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;
144
145         typedef bitmap {
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;
172
173         typedef struct {
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;
188                 uint32 priority;
189                 uint32 defaultpriority;
190                 uint32 starttime;
191                 uint32 untiltime;
192                 spoolss_PrinterStatus status;
193                 uint32 cjobs;
194                 uint32 averageppm;
195         } spoolss_PrinterInfo2;
196
197         typedef struct {
198                 [relative,subcontext(0)] security_descriptor *secdesc;
199         } spoolss_PrinterInfo3;
200
201         typedef struct {
202                 [relative] nstring *printername;
203                 [relative] nstring *servername;
204                 spoolss_PrinterAttributes attributes;
205         } spoolss_PrinterInfo4;
206
207         typedef struct {
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;
214
215         typedef struct {
216                 spoolss_PrinterStatus status;
217         } spoolss_PrinterInfo6;
218
219         typedef bitmap {
220                 DSPRINT_PUBLISH         = 0x00000001,
221                 DSPRINT_UPDATE          = 0x00000002,
222                 DSPRINT_UNPUBLISH       = 0x00000004,
223                 DSPRINT_REPUBLISH       = 0x00000008,
224                 DSPRINT_PENDING         = 0x80000000
225         } spoolss_DsPrintAction;
226
227         typedef struct {
228                 [relative] nstring *guid; /* text form of printer guid */
229                 spoolss_DsPrintAction action;
230         } spoolss_PrinterInfo7;
231
232         typedef struct {
233                 [relative,subcontext(0)] spoolss_DeviceMode *devmode;
234         } spoolss_DeviceModeInfo;
235
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;
247                 [default];
248         } spoolss_PrinterInfo;
249
250         /******************/
251         /* Function: 0x00 */
252         /* we are using this as internal parsing code */
253         [public,noopnum,noprint] WERROR _spoolss_EnumPrinters(
254                 [in] spoolss_EnumPrinterFlags flags,
255                 [in] unistr *server,
256                 [in] uint32 level,
257                 [in] DATA_BLOB *buffer,
258                 [in] uint32 offered,
259                 [out] DATA_BLOB *info,
260                 [out] uint32 needed,
261                 [out] uint32 count
262         );
263         [public,noopnum,noprint] void __spoolss_EnumPrinters(
264                 [in] uint32 level,
265                 [in] uint32 count,
266                 [out,switch_is(level)] spoolss_PrinterInfo info[count]
267         );
268         [nopull,nopush] WERROR spoolss_EnumPrinters(
269                 [in] spoolss_EnumPrinterFlags flags,
270                 [in] unistr *server,
271                 [in] uint32 level,
272                 [in] DATA_BLOB *buffer,
273                 [in] uint32 offered,
274                 /* what we have here is a subcontext containing an array of no discriminant unions
275                  * and the array has no size in front
276                  */
277                 [out,switch_is(level),size_is(count)] spoolss_PrinterInfo *info,
278                 [out] uint32 needed,
279                 [out] uint32 count
280         );
281
282         /******************/
283         /* Function: 0x01 */
284         typedef struct {
285                 [value(_ndr_size_spoolss_DeviceMode(devmode, ndr->flags))] uint32 _ndr_size;
286                 [subcontext(4),subcontext_size(_ndr_size)] spoolss_DeviceMode *devmode;
287         } spoolss_DevmodeContainer;
288
289         WERROR spoolss_OpenPrinter(
290                 [in] unistr *printername,
291                 [in] unistr *datatype,
292                 [in] spoolss_DevmodeContainer devmode_ctr,
293                 [in] uint32 access_mask,
294                 [out,ref] policy_handle *handle
295         );
296
297         /******************/
298         /* Function: 0x02 */
299         typedef struct {
300                 uint32 job_id;
301                 [relative] nstring *printer_name;
302                 [relative] nstring *server_name;
303                 [relative] nstring *user_name;
304                 [relative] nstring *document_name;
305                 [relative] nstring *data_type;
306                 [relative] nstring *text_status;
307                 uint32 status;
308                 uint32 priority;
309                 uint32 position;
310                 uint32 total_pages;
311                 uint32 pages_printed;
312                 spoolss_Time time;
313         } spoolss_JobInfo1;
314
315         typedef [nodiscriminant,relative_base,public] union {
316                 [case(1)] spoolss_JobInfo1 info1;
317                 [case(2)]; /* TODO */
318                 [case(3)]; /* TODO */
319                 [default];
320         } spoolss_JobInfo;
321
322         typedef struct {
323                 uint32 level;
324                 [switch_is(level)] spoolss_JobInfo info;
325         } spoolss_JobInfoContainer;
326
327         typedef [v1_enum] enum {
328                 SPOOLSS_JOB_CONTROL_PAUSE               = 1,
329                 SPOOLSS_JOB_CONTROL_RESUME              = 2,
330                 SPOOLSS_JOB_CONTROL_CANCEL              = 3,
331                 SPOOLSS_JOB_CONTROL_RESTART             = 4,
332                 SPOOLSS_JOB_CONTROL_DELETE              = 5,
333                 SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER     = 6,
334                 SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED   = 7
335         } spoolss_JobControl;
336
337         WERROR spoolss_SetJob(
338                 [in,ref] policy_handle *handle,
339                 [in] uint32 job_id,
340                 [in] spoolss_JobInfoContainer *ctr,
341                 [in] spoolss_JobControl command
342         );
343
344         /******************/
345         /* Function: 0x03 */
346         WERROR spoolss_GetJob(
347                 [in,ref] policy_handle *handle,
348                 [in]     uint32 job_id,
349                 [in]     uint32 level,
350                 [in]     DATA_BLOB *buffer,
351                 [in]     uint32 offered,
352                 [out,subcontext(4),subcontext_size(offered),switch_is(level)] spoolss_JobInfo *info,
353                 [out]    uint32 needed
354         );
355
356         /******************/
357         /* Function: 0x04 */
358         [public,noopnum,noprint] WERROR _spoolss_EnumJobs(
359                 [in,ref] policy_handle *handle,
360                 [in]     uint32 firstjob,
361                 [in]     uint32 numjobs,
362                 [in]     uint32 level,
363                 [in]     DATA_BLOB *buffer,
364                 [in]     uint32 offered,
365                 [out]    DATA_BLOB *info,
366                 [out]    uint32 needed,
367                 [out]    uint32 count
368         );
369         [public,noopnum,noprint] void __spoolss_EnumJobs(
370                 [in] uint32 level,
371                 [in] uint32 count,
372                 [out,switch_is(level)] spoolss_JobInfo info[count]
373         );
374         [nopull,nopush] WERROR spoolss_EnumJobs(
375                 [in,ref] policy_handle *handle,
376                 [in]     uint32 firstjob,
377                 [in]     uint32 numjobs,
378                 [in]     uint32 level,
379                 [in]     DATA_BLOB *buffer,
380                 [in]     uint32 offered,
381                 [out,switch_is(level),size_is(count)] spoolss_JobInfo *info,
382                 [out]    uint32 needed,
383                 [out]    uint32 count
384         );
385
386         /******************/
387         /* Function: 0x05 */
388         WERROR spoolss_AddPrinter(
389                 /* This function is not implemented in Samba 3 as no
390                    clients have been observed using it. */
391         );
392
393         /******************/
394         /* Function: 0x06 */
395         WERROR spoolss_DeletePrinter(
396         );
397
398         /******************/
399         /* Function: 0x07 */
400         typedef [v1_enum] enum {
401                 SPOOLSS_PRINTER_CONTROL_UNPAUSE    = 0,
402                 SPOOLSS_PRINTER_CONTROL_PAUSE      = 1,
403                 SPOOLSS_PRINTER_CONTROL_RESUME     = 2,
404                 SPOOLSS_PRINTER_CONTROL_PURGE      = 3,
405                 SPOOLSS_PRINTER_CONTROL_SET_STATUS = 4
406         } spoolss_PrinterControl;
407
408         typedef [switch_type(uint32)] union {
409                 [case(0)] spoolss_PrinterInfo0 *info0;
410                 [case(1)] spoolss_PrinterInfo1 *info1;
411                 [case(2)] spoolss_PrinterInfo2 *info2;
412                 [case(3)] spoolss_PrinterInfo3 *info3;
413                 [case(4)] spoolss_PrinterInfo4 *info4;
414                 [case(5)] spoolss_PrinterInfo5 *info5;
415                 [case(6)] spoolss_PrinterInfo6 *info6;
416                 [case(7)] spoolss_PrinterInfo7 *info7;
417                 [case(8)] spoolss_DeviceModeInfo *info8;
418                 [case(9)] spoolss_DeviceModeInfo *info9;
419                 [default];
420         } spoolss_SetPrinterInfo;
421
422         WERROR spoolss_SetPrinter(
423                 [in,ref] policy_handle *handle,
424                 [in] uint32 level,
425                 [in,switch_is(level)] spoolss_SetPrinterInfo info,
426                 [in] spoolss_DevmodeContainer devmode_ctr,
427                 [in] sec_desc_buf secdesc_ctr,
428                 [in] spoolss_PrinterControl command
429         );
430
431         /******************/
432         /* Function: 0x08 */
433         WERROR spoolss_GetPrinter(
434                 [in,ref] policy_handle *handle,
435                 [in]     uint32 level,
436                 [in]     DATA_BLOB *buffer,
437                 [in]     uint32 offered,
438                 [out,subcontext(4),subcontext_size(offered),switch_is(level)] spoolss_PrinterInfo *info,
439                 [out]    uint32 needed
440         );
441
442         /******************/
443         /* Function: 0x09 */
444         WERROR spoolss_AddPrinterDriver(
445         );
446
447         typedef struct {
448                 [relative] nstring *driver_name;
449         } spoolss_DriverInfo1;
450
451         typedef [v1_enum] enum {
452                 SPOOLSS_DRIVER_VERSION_9X       = 0,
453                 SPOOLSS_DRIVER_VERSION_NT35     = 1,
454                 SPOOLSS_DRIVER_VERSION_NT4      = 2,
455                 SPOOLSS_DRIVER_VERSION_200X     = 3
456         } spoolss_DriverOSVersion;
457
458         typedef struct {
459                 spoolss_DriverOSVersion version;
460                 [relative] nstring *driver_name;
461                 [relative] nstring *architecture;
462                 [relative] nstring *driver_path;
463                 [relative] nstring *data_file;
464                 [relative] nstring *config_file;
465         } spoolss_DriverInfo2;
466
467         typedef struct {
468                 spoolss_DriverOSVersion version;
469                 [relative] nstring *driver_name;
470                 [relative] nstring *architecture;
471                 [relative] nstring *driver_path;
472                 [relative] nstring *data_file;
473                 [relative] nstring *config_file;
474                 [relative] nstring *help_file;
475                 [relative] nstring_array *dependent_files;
476                 [relative] nstring *monitor_name;
477                 [relative] nstring *default_datatype;
478         } spoolss_DriverInfo3;
479
480         typedef struct {
481                 spoolss_DriverOSVersion version;
482                 [relative] nstring *driver_name;
483                 [relative] nstring *architecture;
484                 [relative] nstring *driver_path;
485                 [relative] nstring *data_file;
486                 [relative] nstring *config_file;
487                 [relative] nstring *help_file;
488                 [relative] nstring_array *dependent_files;
489                 [relative] nstring *monitor_name;
490                 [relative] nstring *default_datatype;
491                 [relative] nstring_array *previous_names;
492         } spoolss_DriverInfo4;
493
494         typedef struct {
495                 spoolss_DriverOSVersion version;
496                 [relative] nstring *driver_name;
497                 [relative] nstring *architecture;
498                 [relative] nstring *driver_path;
499                 [relative] nstring *data_file;
500                 [relative] nstring *config_file;
501                 uint32 driver_attributes;
502                 uint32 config_version;
503                 uint32 driver_version;
504         } spoolss_DriverInfo5;
505
506         typedef struct {
507                 spoolss_DriverOSVersion version;
508                 [relative] nstring *driver_name;
509                 [relative] nstring *architecture;
510                 [relative] nstring *driver_path;
511                 [relative] nstring *data_file;
512                 [relative] nstring *config_file;
513                 [relative] nstring *help_file;
514                 [relative] nstring_array *dependent_files;
515                 [relative] nstring *monitor_name;
516                 [relative] nstring *default_datatype;
517                 [relative] nstring_array *previous_names;
518                 NTTIME driver_data;
519                 hyper driver_version;
520                 [relative] nstring *manufacturer_name;
521                 [relative] nstring *manufacturer_url;
522                 [relative] nstring *hardware_id;
523                 [relative] nstring *provider;
524         } spoolss_DriverInfo6;
525
526         typedef [nodiscriminant,relative_base,public] union {
527                 [case(1)] spoolss_DriverInfo1 info1;
528                 [case(2)] spoolss_DriverInfo2 info2;
529                 [case(3)] spoolss_DriverInfo3 info3;
530                 [case(4)] spoolss_DriverInfo4 info4;
531                 [case(5)] spoolss_DriverInfo5 info5;
532                 [case(6)] spoolss_DriverInfo6 info6;
533                 [default];
534         } spoolss_DriverInfo;
535
536         /******************/
537         /* Function: 0x0a */
538         [public,noopnum,noprint] WERROR _spoolss_EnumPrinterDrivers(
539                 [in] unistr *server,
540                 [in] unistr *environment,
541                 [in] uint32 level,
542                 [in] DATA_BLOB *buffer,
543                 [in] uint32 offered,
544                 [out] DATA_BLOB *info,
545                 [out] uint32 needed,
546                 [out] uint32 count
547         );
548         [public,noopnum,noprint] void __spoolss_EnumPrinterDrivers(
549                 [in] uint32 level,
550                 [in] uint32 count,
551                 [out,switch_is(level)] spoolss_DriverInfo info[count]
552         );
553         [nopull,nopush] WERROR spoolss_EnumPrinterDrivers(
554                 [in] unistr *server,
555                 [in] unistr *environment,
556                 [in] uint32 level,
557                 [in] DATA_BLOB *buffer,
558                 [in] uint32 offered,
559                 [out,switch_is(level),size_is(count)] spoolss_DriverInfo *info,
560                 [out] uint32 needed,
561                 [out] uint32 count
562         );
563
564         /******************/
565         /* Function: 0x0b */
566         WERROR spoolss_GetPrinterDriver(
567         );
568
569         /******************/
570         /* Function: 0x0c */
571         typedef struct {
572                 nstring directory_name;
573         } spoolss_DriverDirectoryInfo1;
574
575         /* NOTE: it's seems that w2k3 completly ignores the level
576                  in its server code
577          */
578         typedef [nodiscriminant,relative_base,gensize,public] union {
579                 [case(1)] spoolss_DriverDirectoryInfo1 info1;
580                 [default] spoolss_DriverDirectoryInfo1 info1;
581         } spoolss_DriverDirectoryInfo;
582
583         WERROR spoolss_GetPrinterDriverDirectory(
584                 [in] unistr *server,
585                 [in] unistr *environment,
586                 [in] uint32 level,
587                 [in] DATA_BLOB *buffer,
588                 [in] uint32 offered,
589                 [out,subcontext(4),subcontext_size(offered),switch_is(level)] spoolss_DriverDirectoryInfo *info,
590                 [out] uint32 needed
591         );
592
593         /******************/
594         /* Function: 0x0d */
595         WERROR spoolss_DeletePrinterDriver(
596                 [in,ref] policy_handle *handle,
597                 [in] unistr *server,
598                 [in] unistr architecture,
599                 [in] unistr driver
600         );
601
602         /******************/
603         /* Function: 0x0e */
604         WERROR spoolss_AddPrintProcessor(
605         );
606
607         /******************/
608         /* Function: 0x0f */
609         typedef struct {
610                 [relative] nstring *print_processor_name;
611         } spoolss_PrintProcessorInfo1;
612
613         typedef [nodiscriminant,relative_base,public] union {
614                 [case(1)] spoolss_PrintProcessorInfo1 info1;
615                 [default];
616         } spoolss_PrintProcessorInfo;
617
618         [public,noopnum,noprint] WERROR _spoolss_EnumPrintProcessors(
619                 [in] unistr *servername,
620                 [in] unistr *environment,
621                 [in] uint32 level,
622                 [in] DATA_BLOB *buffer,
623                 [in] uint32 offered,
624                 [out] DATA_BLOB *info,
625                 [out] uint32 needed,
626                 [out] uint32 count
627         );
628         [public,noopnum,noprint] void __spoolss_EnumPrintProcessors(
629                 [in] uint32 level,
630                 [in] uint32 count,
631                 [out,switch_is(level)] spoolss_PrintProcessorInfo info[count]
632         );
633         [nopull,nopush] WERROR spoolss_EnumPrintProcessors(
634                 [in] unistr *servername,
635                 [in] unistr *environment,
636                 [in] uint32 level,
637                 [in] DATA_BLOB *buffer,
638                 [in] uint32 offered,
639                 [out,switch_is(level),size_is(count)] spoolss_PrintProcessorInfo *info,
640                 [out] uint32 needed,
641                 [out] uint32 count
642         );
643
644         /******************/
645         /* Function: 0x10 */
646         WERROR spoolss_GetPrintProcessorDirectory(
647         );
648
649         /******************/
650         /* Function: 0x11 */
651         typedef struct {
652                 unistr *document_name;
653                 unistr *output_file;
654                 unistr *datatype;
655         } spoolss_DocumentInfo1;
656
657         typedef [switch_type(uint32)] union {
658                 [case(1)] spoolss_DocumentInfo1 *info1;
659                 [case(2)]; /* TODO */
660                 [case(3)]; /* TODO */
661                 [default];
662         } spoolss_DocumentInfo;
663
664         WERROR spoolss_StartDocPrinter(
665                 [in,ref] policy_handle *handle,
666                 [in] uint32 level,
667                 [in,switch_is(level)] spoolss_DocumentInfo info,
668                 [out] uint32 job_id
669         );
670
671         /******************/
672         /* Function: 0x12 */
673         WERROR spoolss_StartPagePrinter(
674                 [in,ref] policy_handle *handle
675         );
676
677         /******************/
678         /* Function: 0x13 */
679         WERROR spoolss_WritePrinter(
680                 [in,ref] policy_handle *handle,
681                 [in] DATA_BLOB data,
682                 [in,value(r->in.data.length)] uint32 _data_size,
683                 [out] uint32 num_written
684         );
685
686         /******************/
687         /* Function: 0x14 */
688         WERROR spoolss_EndPagePrinter(
689                 [in,ref] policy_handle *handle
690         );
691
692         /******************/
693         /* Function: 0x15 */
694         WERROR spoolss_AbortPrinter(
695                 [in,ref] policy_handle *handle
696         );
697
698         /******************/
699         /* Function: 0x16 */
700         WERROR spoolss_ReadPrinter(
701                 [in,ref] policy_handle *handle,
702                 [in] uint32 data_size,
703                 [out] DATA_BLOB data,
704                 [out,value(r->out.data.length)] uint32 _data_size
705         );
706
707         /******************/
708         /* Function: 0x17 */
709         WERROR spoolss_EndDocPrinter(
710                 [in,ref] policy_handle *handle
711         );
712
713         /******************/
714         /* Function: 0x18 */
715         WERROR spoolss_AddJob(
716         );
717
718         /******************/
719         /* Function: 0x19 */
720         WERROR spoolss_ScheduleJob(
721         );
722
723         /******************/
724         /* Function: 0x1a */
725         const string SPOOLSS_ARCHITECTURE_NT_X86                = "Windows NT x86";
726
727         typedef [v1_enum] enum {
728                 SPOOLSS_PRINTER_DATA_TYPE_NULL = 0,
729                 SPOOLSS_PRINTER_DATA_TYPE_STRING = 1,
730                 SPOOLSS_PRINTER_DATA_TYPE_UINT32 = 4
731         } spoolss_PrinterDataType;
732
733         typedef [nodiscriminant,gensize] union {
734                 [case(SPOOLSS_PRINTER_DATA_TYPE_NULL)];
735                 [case(SPOOLSS_PRINTER_DATA_TYPE_STRING)] nstring string;
736                 [case(SPOOLSS_PRINTER_DATA_TYPE_UINT32)] uint32 value;
737                 [default,flag(NDR_REMAINING)] DATA_BLOB data;
738         } spoolss_PrinterData;
739
740         [noopnum,noprint,public] WERROR _spoolss_GetPrinterData(
741                 [in,ref] policy_handle *handle,
742                 [in]     unistr value_name,
743                 [in]     uint32 offered,
744                 [out]    spoolss_PrinterDataType type,
745                 [out]    DATA_BLOB data,
746                 [out]    uint32 needed
747         );
748         [noopnum,noprint,public] void __spoolss_GetPrinterData(
749                 [in] spoolss_PrinterDataType type,
750                 [out,switch_is(type)] spoolss_PrinterData data
751         );
752         [nopull,nopush] WERROR spoolss_GetPrinterData(
753                 [in,ref] policy_handle *handle,
754                 [in]     unistr value_name,
755                 [in]     uint32 offered,
756                 [out]    spoolss_PrinterDataType type,
757                 [out,subcontext(4),subcontext_size(offered),switch_is(type)] spoolss_PrinterData data,
758                 [out]    uint32 needed
759         );
760
761         /******************/
762         /* Function: 0x1b */
763         [noopnum,nopull,noprint,public] WERROR _spoolss_SetPrinterData(
764                 [in,ref] policy_handle *handle,
765                 [in] unistr value_name,
766                 [in] spoolss_PrinterDataType type,
767                 [in] DATA_BLOB data,
768                 [in] uint32 _offered
769         );
770         [noopnum,nopull,noprint,public] void __spoolss_SetPrinterData(
771                 [in] spoolss_PrinterDataType type,
772                 [out,switch_is(type)] spoolss_PrinterData data
773         );
774         [nopush] WERROR spoolss_SetPrinterData(
775                 [in,ref] policy_handle *handle,
776                 [in] unistr value_name,
777                 [in] spoolss_PrinterDataType type,
778                 [in,subcontext(4),switch_is(type)] spoolss_PrinterData data,
779                 [in,value(ndr_size_spoolss_PrinterData(&data,type,flags))] uint32 _offered
780         );
781
782         /******************/
783         /* Function: 0x1c */
784         WERROR spoolss_WaitForPrinterChange(
785         );
786
787         /******************/
788         /* Function: 0x1d */
789         WERROR spoolss_ClosePrinter(
790                 [in,out,ref]     policy_handle *handle
791         );
792
793         /******************/
794         /* Function: 0x1e */
795         typedef [v1_enum] enum {
796                 SPOOLSS_FORM_USER       = 0,
797                 SPOOLSS_FORM_BUILTIN    = 1,
798                 SPOOLSS_FORM_PRINTER    = 2
799         } spoolss_FormFlags;
800
801         typedef struct {
802                 uint32 width;
803                 uint32 height;
804         } spoolss_FormSize;
805
806         typedef struct {
807                 uint32 left;
808                 uint32 top;
809                 uint32 right;
810                 uint32 bottom;
811         } spoolss_FormArea;
812
813         typedef struct {
814                 spoolss_FormFlags flags;
815                 [relative] nstring *form_name;
816                 spoolss_FormSize size;
817                 spoolss_FormArea area;
818         } spoolss_FormInfo1;
819
820         typedef [nodiscriminant,relative_base,public,gensize] union {
821                 [case(1)] spoolss_FormInfo1 info1;
822                 [default];
823         } spoolss_FormInfo;
824
825         typedef struct {
826                 spoolss_FormFlags flags;
827                 unistr *form_name;
828                 spoolss_FormSize size;
829                 spoolss_FormArea area;
830         } spoolss_AddFormInfo1;
831
832         typedef [switch_type(uint32)] union {
833                 [case(1)] spoolss_AddFormInfo1 *info1;
834         } spoolss_AddFormInfo;
835
836         WERROR spoolss_AddForm(
837                 [in,ref] policy_handle *handle,
838                 [in] uint32 level,
839                 [in,switch_is(level)] spoolss_AddFormInfo info
840         );
841
842         /******************/
843         /* Function: 0x1f */
844         WERROR spoolss_DeleteForm(
845                 [in,ref] policy_handle *handle,
846                 [in] unistr form_name
847         );
848
849         /******************/
850         /* Function: 0x20 */
851         WERROR spoolss_GetForm(
852                 [in,ref] policy_handle *handle,
853                 [in] unistr form_name,
854                 [in] uint32 level,
855                 [in] DATA_BLOB *buffer,
856                 [in] uint32 offered,
857                 [out,subcontext(4),subcontext_size(offered),switch_is(level)] spoolss_FormInfo *info,
858                 [out] uint32 needed
859         );
860
861         /******************/
862         /* Function: 0x21 */
863         WERROR spoolss_SetForm(
864                 [in,ref] policy_handle *handle,
865                 [in] unistr form_name,
866                 [in] uint32 level,
867                 [in,switch_is(level)] spoolss_AddFormInfo info
868         );
869
870         /******************/
871         /* Function: 0x22 */
872         [public,noopnum,noprint] WERROR _spoolss_EnumForms(
873                 [in,ref] policy_handle *handle,
874                 [in]     uint32 level,
875                 [in]     DATA_BLOB *buffer,
876                 [in]     uint32 offered,
877                 [out]    DATA_BLOB *info,
878                 [out]    uint32 needed,
879                 [out]    uint32 count
880         );
881         [public,noopnum,noprint] void __spoolss_EnumForms(
882                 [in] uint32 level,
883                 [in] uint32 count,
884                 [out,switch_is(level)] spoolss_FormInfo info[count]
885         );
886         [nopull,nopush] WERROR spoolss_EnumForms(
887                 [in,ref] policy_handle *handle,
888                 [in]     uint32 level,
889                 [in]     DATA_BLOB *buffer,
890                 [in]     uint32 offered,
891                 [out,switch_is(level),size_is(count)] spoolss_FormInfo *info,
892                 [out] uint32 needed,
893                 [out] uint32 count
894         );
895
896         typedef struct {
897                 [relative] nstring *port_name;
898         } spoolss_PortInfo1;
899
900         typedef bitmap {
901                 SPOOLSS_PORT_TYPE_WRITE         = 0x00000001,
902                 SPOOLSS_PORT_TYPE_READ          = 0x00000002,
903                 SPOOLSS_PORT_TYPE_REDIRECTED    = 0x00000004,
904                 SPOOLSS_PORT_TYPE_NET_ATTACHED  = 0x00000008
905         } spoolss_PortType;
906
907         typedef struct {
908                 [relative] nstring *port_name;
909                 [relative] nstring *monitor_name;
910                 [relative] nstring *description;
911                 spoolss_PortType port_type;
912                 uint32 reserved;
913         } spoolss_PortInfo2;
914
915         typedef [nodiscriminant,relative_base,public] union {
916                 [case(1)] spoolss_PortInfo1 info1;
917                 [case(2)] spoolss_PortInfo2 info2;
918                 [case(3)]; /* TODO */
919                 [default];
920         } spoolss_PortInfo;
921
922         /******************/
923         /* Function: 0x23 */
924         [public,noopnum,noprint] WERROR _spoolss_EnumPorts(
925                 [in] unistr *servername,
926                 [in] uint32 level,
927                 [in] DATA_BLOB *buffer,
928                 [in] uint32 offered,
929                 [out] DATA_BLOB *info,
930                 [out] uint32 needed,
931                 [out] uint32 count
932         );
933         [public,noopnum,noprint] void __spoolss_EnumPorts(
934                 [in] uint32 level,
935                 [in] uint32 count,
936                 [out,switch_is(level)] spoolss_PortInfo info[count]
937         );
938         [nopull,nopush] WERROR spoolss_EnumPorts(
939                 [in] unistr *servername,
940                 [in] uint32 level,
941                 [in] DATA_BLOB *buffer,
942                 [in] uint32 offered,
943                 [out,switch_is(level),size_is(count)] spoolss_PortInfo *info,
944                 [out] uint32 needed,
945                 [out] uint32 count
946         );
947
948         /******************/
949         /* Function: 0x24 */
950         typedef struct {
951                 [relative] nstring *monitor_name;
952         } spoolss_MonitorInfo1;
953
954         typedef struct {
955                 [relative] nstring *monitor_name;
956                 [relative] nstring *environment;
957                 [relative] nstring *dll_name;
958         } spoolss_MonitorInfo2;
959
960         typedef [nodiscriminant,relative_base,public] union {
961                 [case(1)] spoolss_MonitorInfo1 info1;
962                 [case(2)] spoolss_MonitorInfo2 info2;
963                 [default];
964         } spoolss_MonitorInfo;
965
966         [public,noopnum,noprint] WERROR _spoolss_EnumMonitors(
967                 [in] unistr *servername,
968                 [in] uint32 level,
969                 [in] DATA_BLOB *buffer,
970                 [in] uint32 offered,
971                 [out] DATA_BLOB *info,
972                 [out] uint32 needed,
973                 [out] uint32 count
974         );
975         [public,noopnum,noprint] void __spoolss_EnumMonitors(
976                 [in] uint32 level,
977                 [in] uint32 count,
978                 [out,switch_is(level)] spoolss_MonitorInfo info[count]
979         );
980         [nopull,nopush] WERROR spoolss_EnumMonitors(
981                 [in] unistr *servername,
982                 [in] uint32 level,
983                 [in] DATA_BLOB *buffer,
984                 [in] uint32 offered,
985                 [out,switch_is(level),size_is(count)] spoolss_MonitorInfo *info,
986                 [out] uint32 needed,
987                 [out] uint32 count
988         );
989
990         /******************/
991         /* Function: 0x25 */
992         WERROR spoolss_AddPort(
993                [in] unistr *server_name,
994                [in] uint32 unknown,
995                [in] unistr monitor_name
996         );
997
998         /******************/
999         /* Function: 0x26 */
1000         WERROR spoolss_ConfigurePort(
1001         );
1002
1003         /******************/
1004         /* Function: 0x27 */
1005         WERROR spoolss_DeletePort(
1006         );
1007
1008         /******************/
1009         /* Function: 0x28 */
1010         WERROR spoolss_CreatePrinterIC(
1011         );
1012
1013         /******************/
1014         /* Function: 0x29 */
1015         WERROR spoolss_PlayGDIScriptOnPrinterIC(
1016         );
1017
1018         /******************/
1019         /* Function: 0x2a */
1020         WERROR spoolss_DeletePrinterIC(
1021         );
1022
1023         /******************/
1024         /* Function: 0x2b */
1025         WERROR spoolss_AddPrinterConnection(
1026         );
1027
1028         /******************/
1029         /* Function: 0x2c */
1030         WERROR spoolss_DeletePrinterConnection(
1031         );
1032
1033         /******************/
1034         /* Function: 0x2d */
1035         WERROR spoolss_PrinterMessageBox(
1036                 /* Marked as obsolete in MSDN.  "Not necessary and has
1037                    no effect". */
1038         );
1039
1040         /******************/
1041         /* Function: 0x2e */
1042         WERROR spoolss_AddMonitor(
1043         );
1044
1045         /******************/
1046         /* Function: 0x2f */
1047         WERROR spoolss_DeleteMonitor(
1048         );
1049
1050         /******************/
1051         /* Function: 0x30 */
1052         WERROR spoolss_DeletePrintProcessor(
1053         );
1054
1055         /******************/
1056         /* Function: 0x31 */
1057         WERROR spoolss_AddPrintProvidor(
1058         );
1059
1060         /******************/
1061         /* Function: 0x32 */
1062         WERROR spoolss_DeletePrintProvidor(
1063         );
1064
1065         /******************/
1066         /* Function: 0x33 */
1067         WERROR spoolss_EnumPrintProcDataTypes(
1068         );
1069
1070         /******************/
1071         /* Function: 0x34 */
1072         WERROR spoolss_ResetPrinter(
1073         );
1074
1075         /******************/
1076         /* Function: 0x35 */
1077         WERROR spoolss_GetPrinterDriver2(
1078                 [in,ref] policy_handle *handle,
1079                 [in]     unistr *architecture,
1080                 [in]     uint32 level,
1081                 [in]     DATA_BLOB *buffer,
1082                 [in]     uint32 offered,
1083                 [in]     uint32 client_major_version,
1084                 [in]     uint32 client_minor_version,
1085                 [out]    DATA_BLOB *info,
1086                 [out]    uint32 needed,
1087                 [out]    uint32 server_major_version,
1088                 [out]    uint32 server_minor_version
1089         );
1090
1091         /******************/
1092         /* Function: 0x36 */
1093         WERROR spoolss_FindFirstPrinterChangeNotification(
1094         );
1095
1096         /******************/
1097         /* Function: 0x37 */
1098         WERROR spoolss_FindNextPrinterChangeNotification(
1099         );
1100
1101         /******************/
1102         /* Function: 0x38 */
1103         WERROR spoolss_FindClosePrinterNotify(
1104         );
1105
1106         /******************/
1107         /* Function: 0x39 */
1108         WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
1109         );
1110
1111         /******************/
1112         /* Function: 0x3a */
1113         WERROR spoolss_ReplyOpenPrinter(
1114         );
1115
1116         /******************/
1117         /* Function: 0x3b */
1118         WERROR spoolss_RouterReplyPrinter(
1119         );
1120
1121         /******************/
1122         /* Function: 0x3c */
1123         WERROR spoolss_ReplyClosePrinter(
1124         );
1125
1126         /******************/
1127         /* Function: 0x3d */
1128         WERROR spoolss_AddPortEx(
1129         );
1130
1131         /******************/
1132         /* Function: 0x3e */
1133         WERROR spoolss_RouterFindFirstPrinterChangeNotification(
1134         );
1135
1136         /******************/
1137         /* Function: 0x3f */
1138         WERROR spoolss_SpoolerInit(
1139         );
1140
1141         /******************/
1142         /* Function: 0x40 */
1143         WERROR spoolss_ResetPrinterEx(
1144         );
1145
1146         /******************/
1147         /* Function: 0x41 */
1148         typedef [flag(NDR_PAHEX)] struct {
1149                 uint16 u1;
1150                 uint16 u2;
1151                 uint32 u3;
1152                 uint32 u4;
1153                 uint32 count;
1154                 [size_is(count)] uint16 *array;
1155         } spoolss_RemoteFindFirstPrinterChangeNotifyEx_t2;
1156
1157         typedef struct {
1158                 uint32 u1;
1159                 uint32 u2;
1160                 uint32 count;
1161                 [size_is(count)] spoolss_RemoteFindFirstPrinterChangeNotifyEx_t2 *t2;
1162         } spoolss_RemoteFindFirstPrinterChangeNotifyEx_t1;
1163
1164         WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx(
1165                 [in,ref] policy_handle *handle,
1166                 [in] uint32 u1,
1167                 [in] uint32 u2,
1168                 [in] unistr *str,
1169                 [in] uint32 u3,
1170                 [in] spoolss_RemoteFindFirstPrinterChangeNotifyEx_t1 *t1
1171         );
1172
1173         /******************/
1174         /* Function: 0x42 */
1175         WERROR spoolss_RouterRefreshPrinterChangeNotification(
1176         );
1177
1178         /******************/
1179         /* Function: 0x43 */
1180         WERROR spoolss_RemoteFindNextPrinterChangeNotifyEx(
1181         );
1182
1183         /******************/
1184         /* Function: 0x44 */
1185         WERROR spoolss_44(
1186         );
1187
1188         typedef struct {
1189                 uint32 size;
1190                 unistr *client;
1191                 unistr *user;
1192                 uint32 build;
1193                 uint32 major;
1194                 uint32 minor;
1195                 uint32 processor;
1196         } spoolss_UserLevel1;
1197
1198         typedef union {
1199                 [case(1)]  spoolss_UserLevel1 *level1;
1200         } spoolss_UserLevel;
1201
1202         /******************/
1203         /* Function: 0x45 */
1204         WERROR spoolss_OpenPrinterEx(
1205                 [in]                  unistr *printername,
1206                 [in]                  unistr *datatype,
1207                 [in]                  spoolss_DevmodeContainer devmode_ctr,
1208                 [in]                  uint32 access_mask,
1209                 [in]                  uint32 level,
1210                 [in,switch_is(level)] spoolss_UserLevel userlevel,
1211                 [out,ref]             policy_handle *handle
1212         );
1213
1214         /******************/
1215         /* Function: 0x46 */
1216         WERROR spoolss_AddPrinterEx(
1217                 [in] unistr *server,
1218                 [in] uint32 level,
1219                 [in,switch_is(level)] spoolss_PrinterInfo *info,
1220                 [in] spoolss_DevmodeContainer devmode_ctr,
1221                 [in] security_descriptor *secdesc,
1222                 [in] uint32 ulevel,
1223                 [in,switch_is(ulevel)] spoolss_UserLevel userlevel
1224         );
1225
1226         /******************/
1227         /* Function: 0x47 */
1228         WERROR spoolss_47(
1229         );
1230
1231         /******************/
1232         /* Function: 0x48 */
1233         WERROR spoolss_EnumPrinterData(
1234                 [in,ref] policy_handle *handle,
1235                 [in]     uint32 enum_index,
1236                 [in]     uint32 value_offered,
1237                 [out]    lstring value_name,
1238                 [out]    uint32 value_needed,
1239                 [out]    uint32 printerdata_type,
1240                 [out]    DATA_BLOB buffer,
1241                 [in,out,ref] uint32 *data_size
1242         );
1243
1244         /******************/
1245         /* Function: 0x49 */
1246         WERROR spoolss_DeletePrinterData(
1247                 [in,ref] policy_handle *handle,
1248                 [in] unistr value_name
1249         );
1250
1251         /******************/
1252         /* Function: 0x4a */
1253         WERROR spoolss_4a(
1254         );
1255
1256         /******************/
1257         /* Function: 0x4b */
1258         WERROR spoolss_4b(
1259         );
1260
1261         /******************/
1262         /* Function: 0x4c */
1263         WERROR spoolss_4c(
1264         );
1265
1266         /******************/
1267         /* Function: 0x4d */
1268         WERROR spoolss_SetPrinterDataEx(
1269                 [in,ref] policy_handle *handle,
1270                 [in]     unistr key_name,
1271                 [in]     unistr value_name,
1272                 [in]     uint32 type,
1273                 [in]     DATA_BLOB buffer,
1274                 [in]     uint32 offered
1275         );
1276
1277         /******************/
1278         /* Function: 0x4e */
1279         WERROR spoolss_GetPrinterDataEx(
1280                 [in,ref] policy_handle *handle,
1281                 [in]     unistr key_name,
1282                 [in]     unistr value_name,
1283                 [in]     uint32 offered,
1284                 [out]    uint32 type,
1285                 [out]    DATA_BLOB buffer,
1286                 [out]    uint32 needed
1287         );
1288
1289         /******************/
1290         /* Function: 0x4f */
1291         WERROR spoolss_EnumPrinterDataEx(
1292                 [in,ref] policy_handle *handle,
1293                 [in]     unistr key_name,
1294                 [in]     uint32 offered,
1295                 [out]    DATA_BLOB buffer,
1296                 [out]    uint32 needed,
1297                 [out]    uint32 count
1298         );
1299
1300         /******************/
1301         /* Function: 0x50 */
1302         WERROR spoolss_EnumPrinterKey(
1303         );
1304
1305         /******************/
1306         /* Function: 0x51 */
1307         WERROR spoolss_DeletePrinterDataEx(
1308                 [in,ref] policy_handle *handle,
1309                 [in] unistr key_name,
1310                 [in] unistr value_name
1311         );
1312
1313         /******************/
1314         /* Function: 0x52 */
1315         WERROR spoolss_DeletePrinterKey(
1316         );
1317
1318         /******************/
1319         /* Function: 0x53 */
1320         WERROR spoolss_53(
1321         );
1322
1323         /******************/
1324         /* Function: 0x54 */
1325         WERROR spoolss_DeletePrinterDriverEx(
1326         );
1327
1328         /******************/
1329         /* Function: 0x55 */
1330         WERROR spoolss_55(
1331         );
1332
1333         /******************/
1334         /* Function: 0x56 */
1335         WERROR spoolss_56(
1336         );
1337
1338         /******************/
1339         /* Function: 0x57 */
1340         WERROR spoolss_57(
1341         );
1342
1343         /******************/
1344         /* Function: 0x58 */
1345         WERROR spoolss_58(
1346         );
1347
1348         /******************/
1349         /* Function: 0x59 */
1350         WERROR spoolss_AddPrinterDriverEx(
1351         );
1352
1353         /******************/
1354         /* Function: 0x5a */
1355         WERROR spoolss_5a(
1356         );
1357
1358         /******************/
1359         /* Function: 0x5b */
1360         WERROR spoolss_5b(
1361         );
1362
1363         /******************/
1364         /* Function: 0x5c */
1365         WERROR spoolss_5c(
1366         );
1367
1368         /******************/
1369         /* Function: 0x5d */
1370         WERROR spoolss_5d(
1371         );
1372
1373         /******************/
1374         /* Function: 0x5e */
1375         WERROR spoolss_5e(
1376         );
1377
1378         /******************/
1379         /* Function: 0x5f */
1380         WERROR spoolss_5f(
1381         );
1382 }