s3: re-run make samba3-idl.
[jra/samba/.git] / librpc / gen_ndr / spoolss.h
1 /* header auto-generated by pidl */
2
3 #include <stdint.h>
4
5 #include "librpc/gen_ndr/misc.h"
6 #include "librpc/gen_ndr/security.h"
7 #include "librpc/gen_ndr/winreg.h"
8 #ifndef _HEADER_spoolss
9 #define _HEADER_spoolss
10
11 #define PRINTER_ENUM_ICONMASK   ( (PRINTER_ENUM_ICON1|PRINTER_ENUM_ICON2|PRINTER_ENUM_ICON3|PRINTER_ENUM_ICON4|PRINTER_ENUM_ICON5|PRINTER_ENUM_ICON6|PRINTER_ENUM_ICON7|PRINTER_ENUM_ICON8) )
12 #define SPOOLSS_ARCHITECTURE_NT_X86     ( "Windows NT x86" )
13 #define PRINTER_CHANGE_PRINTER  ( 0x000000FF )
14 #define PRINTER_CHANGE_JOB      ( 0x0000FF00 )
15 #define PRINTER_CHANGE_FORM     ( (PRINTER_CHANGE_ADD_FORM|PRINTER_CHANGE_SET_FORM|PRINTER_CHANGE_DELETE_FORM) )
16 #define PRINTER_CHANGE_PORT     ( (PRINTER_CHANGE_ADD_PORT|PRINTER_CHANGE_CONFIGURE_PORT|PRINTER_CHANGE_DELETE_PORT) )
17 #define PRINTER_CHANGE_PRINT_PROCESSOR  ( 0x07000000 )
18 #define PRINTER_CHANGE_PRINTER_DRIVER   ( (PRINTER_CHANGE_ADD_PRINTER_DRIVER|PRINTER_CHANGE_SET_PRINTER_DRIVER|PRINTER_CHANGE_DELETE_PRINTER_DRIVER) )
19 #define PRINTER_CHANGE_ALL      ( (PRINTER_CHANGE_PRINTER|PRINTER_CHANGE_JOB|PRINTER_CHANGE_FORM|PRINTER_CHANGE_PORT|PRINTER_CHANGE_PRINT_PROCESSOR|PRINTER_CHANGE_PRINTER_DRIVER) )
20 #define SERVER_ALL_ACCESS       ( SEC_STD_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
21 #define SERVER_READ     ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
22 #define SERVER_WRITE    ( STANDARD_RIGHTS_WRITE_ACCESS|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
23 #define SERVER_EXECUTE  ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
24 #define PRINTER_ALL_ACCESS      ( SEC_STD_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE )
25 #define PRINTER_READ    ( SEC_STD_READ_CONTROL|PRINTER_ACCESS_USE )
26 #define PRINTER_WRITE   ( STANDARD_RIGHTS_WRITE_ACCESS|PRINTER_ACCESS_USE )
27 #define PRINTER_EXECUTE ( SEC_STD_READ_CONTROL|PRINTER_ACCESS_USE )
28 #define JOB_ALL_ACCESS  ( SEC_STD_REQUIRED|JOB_ACCESS_ADMINISTER )
29 #define JOB_READ        ( SEC_STD_READ_CONTROL|JOB_ACCESS_ADMINISTER )
30 #define JOB_WRITE       ( STANDARD_RIGHTS_WRITE_ACCESS|JOB_ACCESS_ADMINISTER )
31 #define JOB_EXECUTE     ( SEC_STD_READ_CONTROL|JOB_ACCESS_ADMINISTER )
32 #define PRINTER_ACE_FULL_CONTROL        ( SEC_GENERIC_ALL|PRINTER_ALL_ACCESS )
33 #define PRINTER_ACE_MANAGE_DOCUMENTS    ( SEC_GENERIC_ALL|READ_CONTROL_ACCESS )
34 #define PRINTER_ACE_PRINT       ( GENERIC_EXECUTE_ACCESS|READ_CONTROL_ACCESS|PRINTER_ACCESS_USE )
35 struct spoolss_Time {
36         uint16_t year;
37         uint16_t month;
38         uint16_t day_of_week;
39         uint16_t day;
40         uint16_t hour;
41         uint16_t minute;
42         uint16_t second;
43         uint16_t millisecond;
44 }/* [gensize] */;
45
46 struct spoolss_TimeCtr {
47         uint32_t size;/* [value(ndr_size_spoolss_Time(time,ndr->iconv_convenience,ndr->flags))] */
48         struct spoolss_Time *time;/* [unique] */
49 };
50
51 enum spoolss_ProcessorArchitecture
52 #ifndef USE_UINT_ENUMS
53  {
54         PROCESSOR_ARCHITECTURE_INTEL=0x0000,
55         PROCESSOR_ARCHITECTURE_IA64=0x0006,
56         PROCESSOR_ARCHITECTURE_AMD64=0x0009
57 }
58 #else
59  { __donnot_use_enum_spoolss_ProcessorArchitecture=0x7FFFFFFF}
60 #define PROCESSOR_ARCHITECTURE_INTEL ( 0x0000 )
61 #define PROCESSOR_ARCHITECTURE_IA64 ( 0x0006 )
62 #define PROCESSOR_ARCHITECTURE_AMD64 ( 0x0009 )
63 #endif
64 ;
65
66 enum spoolss_ProcessorType
67 #ifndef USE_UINT_ENUMS
68  {
69         PROCESSOR_INTEL_386=0x00000182,
70         PROCESSOR_INTEL_486=0x000001E6,
71         PROCESSOR_INTEL_PENTIUM=0x0000024A,
72         PROCESSOR_INTEL_IA64=0x00000898,
73         PROCESSOR_AMD_X8664=0x000022A0
74 }
75 #else
76  { __donnot_use_enum_spoolss_ProcessorType=0x7FFFFFFF}
77 #define PROCESSOR_INTEL_386 ( 0x00000182 )
78 #define PROCESSOR_INTEL_486 ( 0x000001E6 )
79 #define PROCESSOR_INTEL_PENTIUM ( 0x0000024A )
80 #define PROCESSOR_INTEL_IA64 ( 0x00000898 )
81 #define PROCESSOR_AMD_X8664 ( 0x000022A0 )
82 #endif
83 ;
84
85 enum spoolss_MajorVersion
86 #ifndef USE_UINT_ENUMS
87  {
88         SPOOLSS_MAJOR_VERSION_NT4_95_98_ME=0x00000004,
89         SPOOLSS_MAJOR_VERSION_2000_2003_XP=0x00000005,
90         SPOOLSS_MAJOR_VERSION_2008_VISTA=0x00000006
91 }
92 #else
93  { __donnot_use_enum_spoolss_MajorVersion=0x7FFFFFFF}
94 #define SPOOLSS_MAJOR_VERSION_NT4_95_98_ME ( 0x00000004 )
95 #define SPOOLSS_MAJOR_VERSION_2000_2003_XP ( 0x00000005 )
96 #define SPOOLSS_MAJOR_VERSION_2008_VISTA ( 0x00000006 )
97 #endif
98 ;
99
100 enum spoolss_MinorVersion
101 #ifndef USE_UINT_ENUMS
102  {
103         SPOOLSS_MINOR_VERSION_0=0x00000000,
104         SPOOLSS_MINOR_VERSION_XP=0x00000001,
105         SPOOLSS_MINOR_VERSION_2003_XP64=0x00000002,
106         SPOOLSS_MINOR_VERSION_98=0x0000000a,
107         SPOOLSS_MINOR_VERSION_ME=0x0000005a
108 }
109 #else
110  { __donnot_use_enum_spoolss_MinorVersion=0x7FFFFFFF}
111 #define SPOOLSS_MINOR_VERSION_0 ( 0x00000000 )
112 #define SPOOLSS_MINOR_VERSION_XP ( 0x00000001 )
113 #define SPOOLSS_MINOR_VERSION_2003_XP64 ( 0x00000002 )
114 #define SPOOLSS_MINOR_VERSION_98 ( 0x0000000a )
115 #define SPOOLSS_MINOR_VERSION_ME ( 0x0000005a )
116 #endif
117 ;
118
119 struct spoolss_PrinterInfo0 {
120         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
121         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
122         uint32_t cjobs;
123         uint32_t total_jobs;
124         uint32_t total_bytes;
125         struct spoolss_Time time;
126         uint32_t global_counter;
127         uint32_t total_pages;
128         uint32_t version;
129         uint32_t free_build;
130         uint32_t spooling;
131         uint32_t max_spooling;
132         uint32_t session_counter;
133         uint32_t num_error_out_of_paper;
134         uint32_t num_error_not_ready;
135         uint32_t job_error;
136         uint32_t number_of_processors;
137         enum spoolss_ProcessorType processor_type;
138         uint32_t high_part_total_bytes;
139         uint32_t change_id;
140         WERROR last_error;
141         uint32_t status;
142         uint32_t enumerate_network_printers;
143         uint32_t c_setprinter;
144         enum spoolss_ProcessorArchitecture processor_architecture;
145         uint16_t processor_level;
146         uint32_t ref_ic;
147         uint32_t reserved2;
148         uint32_t reserved3;
149 };
150
151 /* bitmap spoolss_DeviceModeFields */
152 #define DEVMODE_ORIENTATION ( 0x00000001 )
153 #define DEVMODE_PAPERSIZE ( 0x00000002 )
154 #define DEVMODE_PAPERLENGTH ( 0x00000004 )
155 #define DEVMODE_PAPERWIDTH ( 0x00000008 )
156 #define DEVMODE_SCALE ( 0x00000010 )
157 #define DEVMODE_POSITION ( 0x00000020 )
158 #define DEVMODE_NUP ( 0x00000040 )
159 #define DEVMODE_COPIES ( 0x00000100 )
160 #define DEVMODE_DEFAULTSOURCE ( 0x00000200 )
161 #define DEVMODE_PRINTQUALITY ( 0x00000400 )
162 #define DEVMODE_COLOR ( 0x00000800 )
163 #define DEVMODE_DUPLEX ( 0x00001000 )
164 #define DEVMODE_YRESOLUTION ( 0x00002000 )
165 #define DEVMODE_TTOPTION ( 0x00004000 )
166 #define DEVMODE_COLLATE ( 0x00008000 )
167 #define DEVMODE_FORMNAME ( 0x00010000 )
168 #define DEVMODE_LOGPIXELS ( 0x00020000 )
169 #define DEVMODE_BITSPERPEL ( 0x00040000 )
170 #define DEVMODE_PELSWIDTH ( 0x00080000 )
171 #define DEVMODE_PELSHEIGHT ( 0x00100000 )
172 #define DEVMODE_DISPLAYFLAGS ( 0x00200000 )
173 #define DEVMODE_DISPLAYFREQUENCY ( 0x00400000 )
174 #define DEVMODE_ICMMETHOD ( 0x00800000 )
175 #define DEVMODE_ICMINTENT ( 0x01000000 )
176 #define DEVMODE_MEDIATYPE ( 0x02000000 )
177 #define DEVMODE_DITHERTYPE ( 0x04000000 )
178 #define DEVMODE_PANNINGWIDTH ( 0x08000000 )
179 #define DEVMODE_PANNINGHEIGHT ( 0x10000000 )
180
181 struct spoolss_DeviceMode {
182         const char *devicename;/* [charset(UTF16)] */
183         uint16_t specversion;
184         uint16_t driverversion;
185         uint16_t size;
186         uint16_t __driverextra_length;/* [value(r->driverextra_data.length)] */
187         uint32_t fields;
188         uint16_t orientation;
189         uint16_t papersize;
190         uint16_t paperlength;
191         uint16_t paperwidth;
192         uint16_t scale;
193         uint16_t copies;
194         uint16_t defaultsource;
195         uint16_t printquality;
196         uint16_t color;
197         uint16_t duplex;
198         uint16_t yresolution;
199         uint16_t ttoption;
200         uint16_t collate;
201         const char *formname;/* [charset(UTF16)] */
202         uint16_t logpixels;
203         uint32_t bitsperpel;
204         uint32_t pelswidth;
205         uint32_t pelsheight;
206         uint32_t displayflags;
207         uint32_t displayfrequency;
208         uint32_t icmmethod;
209         uint32_t icmintent;
210         uint32_t mediatype;
211         uint32_t dithertype;
212         uint32_t reserved1;
213         uint32_t reserved2;
214         uint32_t panningwidth;
215         uint32_t panningheight;
216         DATA_BLOB driverextra_data;/* [subcontext_size(__driverextra_length),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
217 }/* [gensize,public] */;
218
219 /* bitmap spoolss_EnumPrinterFlags */
220 #define PRINTER_ENUM_DEFAULT ( 0x00000001 )
221 #define PRINTER_ENUM_LOCAL ( 0x00000002 )
222 #define PRINTER_ENUM_CONNECTIONS ( 0x00000004 )
223 #define PRINTER_ENUM_FAVORITE ( 0x00000004 )
224 #define PRINTER_ENUM_NAME ( 0x00000008 )
225 #define PRINTER_ENUM_REMOTE ( 0x00000010 )
226 #define PRINTER_ENUM_SHARED ( 0x00000020 )
227 #define PRINTER_ENUM_NETWORK ( 0x00000040 )
228 #define PRINTER_ENUM_EXPAND ( 0x00004000 )
229 #define PRINTER_ENUM_CONTAINER ( 0x00008000 )
230 #define PRINTER_ENUM_ICON1 ( 0x00010000 )
231 #define PRINTER_ENUM_ICON2 ( 0x00020000 )
232 #define PRINTER_ENUM_ICON3 ( 0x00040000 )
233 #define PRINTER_ENUM_ICON4 ( 0x00080000 )
234 #define PRINTER_ENUM_ICON5 ( 0x00100000 )
235 #define PRINTER_ENUM_ICON6 ( 0x00200000 )
236 #define PRINTER_ENUM_ICON7 ( 0x00400000 )
237 #define PRINTER_ENUM_ICON8 ( 0x00800000 )
238 #define PRINTER_ENUM_HIDE ( 0x01000000 )
239
240 struct spoolss_PrinterInfo1 {
241         uint32_t flags;
242         const char * name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
243         const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
244         const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
245 };
246
247 /* bitmap spoolss_PrinterAttributes */
248 #define PRINTER_ATTRIBUTE_QUEUED ( 0x00000001 )
249 #define PRINTER_ATTRIBUTE_DIRECT ( 0x00000002 )
250 #define PRINTER_ATTRIBUTE_DEFAULT ( 0x00000004 )
251 #define PRINTER_ATTRIBUTE_SHARED ( 0x00000008 )
252 #define PRINTER_ATTRIBUTE_NETWORK ( 0x00000010 )
253 #define PRINTER_ATTRIBUTE_HIDDEN ( 0x00000020 )
254 #define PRINTER_ATTRIBUTE_LOCAL ( 0x00000040 )
255 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ ( 0x00000080 )
256 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS ( 0x00000100 )
257 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST ( 0x00000200 )
258 #define PRINTER_ATTRIBUTE_WORK_OFFLINE ( 0x00000400 )
259 #define PRINTER_ATTRIBUTE_ENABLE_BIDI ( 0x00000800 )
260 #define PRINTER_ATTRIBUTE_RAW_ONLY ( 0x00001000 )
261 #define PRINTER_ATTRIBUTE_PUBLISHED ( 0x00002000 )
262 #define PRINTER_ATTRIBUTE_FAX ( 0x00004000 )
263 #define PRINTER_ATTRIBUTE_TS ( 0x00008000 )
264
265 /* bitmap spoolss_PrinterStatus */
266 #define PRINTER_STATUS_PAUSED ( 0x00000001 )
267 #define PRINTER_STATUS_ERROR ( 0x00000002 )
268 #define PRINTER_STATUS_PENDING_DELETION ( 0x00000004 )
269 #define PRINTER_STATUS_PAPER_JAM ( 0x00000008 )
270 #define PRINTER_STATUS_PAPER_OUT ( 0x00000010 )
271 #define PRINTER_STATUS_MANUAL_FEED ( 0x00000020 )
272 #define PRINTER_STATUS_PAPER_PROBLEM ( 0x00000040 )
273 #define PRINTER_STATUS_OFFLINE ( 0x00000080 )
274 #define PRINTER_STATUS_IO_ACTIVE ( 0x00000100 )
275 #define PRINTER_STATUS_BUSY ( 0x00000200 )
276 #define PRINTER_STATUS_PRINTING ( 0x00000400 )
277 #define PRINTER_STATUS_OUTPUT_BIN_FULL ( 0x00000800 )
278 #define PRINTER_STATUS_NOT_AVAILABLE ( 0x00001000 )
279 #define PRINTER_STATUS_WAITING ( 0x00002000 )
280 #define PRINTER_STATUS_PROCESSING ( 0x00004000 )
281 #define PRINTER_STATUS_INITIALIZING ( 0x00008000 )
282 #define PRINTER_STATUS_WARMING_UP ( 0x00010000 )
283 #define PRINTER_STATUS_TONER_LOW ( 0x00020000 )
284 #define PRINTER_STATUS_NO_TONER ( 0x00040000 )
285 #define PRINTER_STATUS_PAGE_PUNT ( 0x00080000 )
286 #define PRINTER_STATUS_USER_INTERVENTION ( 0x00100000 )
287 #define PRINTER_STATUS_OUT_OF_MEMORY ( 0x00200000 )
288 #define PRINTER_STATUS_DOOR_OPEN ( 0x00400000 )
289 #define PRINTER_STATUS_SERVER_UNKNOWN ( 0x00800000 )
290 #define PRINTER_STATUS_POWER_SAVE ( 0x01000000 )
291
292 struct spoolss_PrinterInfo2 {
293         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
294         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
295         const char * sharename;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
296         const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
297         const char * drivername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
298         const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
299         const char * location;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
300         struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0)] */
301         const char * sepfile;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
302         const char * printprocessor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
303         const char * datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
304         const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
305         struct security_descriptor *secdesc;/* [relative,subcontext(0)] */
306         uint32_t attributes;
307         uint32_t priority;
308         uint32_t defaultpriority;
309         uint32_t starttime;
310         uint32_t untiltime;
311         uint32_t status;
312         uint32_t cjobs;
313         uint32_t averageppm;
314 };
315
316 struct spoolss_PrinterInfo3 {
317         struct security_descriptor *secdesc;/* [relative,subcontext(0)] */
318 };
319
320 struct spoolss_PrinterInfo4 {
321         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
322         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
323         uint32_t attributes;
324 };
325
326 struct spoolss_PrinterInfo5 {
327         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
328         const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
329         uint32_t attributes;
330         uint32_t device_not_selected_timeout;
331         uint32_t transmission_retry_timeout;
332 };
333
334 struct spoolss_PrinterInfo6 {
335         uint32_t status;
336 };
337
338 /* bitmap spoolss_DsPrintAction */
339 #define DSPRINT_PUBLISH ( 0x00000001 )
340 #define DSPRINT_UPDATE ( 0x00000002 )
341 #define DSPRINT_UNPUBLISH ( 0x00000004 )
342 #define DSPRINT_REPUBLISH ( 0x00000008 )
343 #define DSPRINT_PENDING ( 0x80000000 )
344
345 struct spoolss_PrinterInfo7 {
346         const char * guid;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
347         uint32_t action;
348 };
349
350 struct spoolss_DeviceModeInfo {
351         struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0)] */
352 };
353
354 union spoolss_PrinterInfo {
355         struct spoolss_PrinterInfo0 info0;/* [case(0)] */
356         struct spoolss_PrinterInfo1 info1;/* [case] */
357         struct spoolss_PrinterInfo2 info2;/* [case(2)] */
358         struct spoolss_PrinterInfo3 info3;/* [case(3)] */
359         struct spoolss_PrinterInfo4 info4;/* [case(4)] */
360         struct spoolss_PrinterInfo5 info5;/* [case(5)] */
361         struct spoolss_PrinterInfo6 info6;/* [case(6)] */
362         struct spoolss_PrinterInfo7 info7;/* [case(7)] */
363         struct spoolss_DeviceModeInfo info8;/* [case(8)] */
364         struct spoolss_DeviceModeInfo info9;/* [case(9)] */
365 }/* [relative_base,nodiscriminant,public] */;
366
367 struct spoolss_DevmodeContainer {
368         uint32_t _ndr_size;/* [value(_ndr_size_spoolss_DeviceMode(devmode,ndr->iconv_convenience,ndr->flags))] */
369         struct spoolss_DeviceMode *devmode;/* [unique,subcontext_size(_ndr_size),subcontext(4)] */
370 };
371
372 struct spoolss_JobInfo1 {
373         uint32_t job_id;
374         const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
375         const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
376         const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
377         const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
378         const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
379         const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
380         uint32_t status;
381         uint32_t priority;
382         uint32_t position;
383         uint32_t total_pages;
384         uint32_t pages_printed;
385         struct spoolss_Time time;
386 };
387
388 union spoolss_JobInfo {
389         struct spoolss_JobInfo1 info1;/* [case] */
390 }/* [relative_base,nodiscriminant,public] */;
391
392 struct spoolss_JobInfoContainer {
393         uint32_t level;
394         union spoolss_JobInfo info;/* [switch_is(level)] */
395 };
396
397 enum spoolss_JobControl
398 #ifndef USE_UINT_ENUMS
399  {
400         SPOOLSS_JOB_CONTROL_PAUSE=1,
401         SPOOLSS_JOB_CONTROL_RESUME=2,
402         SPOOLSS_JOB_CONTROL_CANCEL=3,
403         SPOOLSS_JOB_CONTROL_RESTART=4,
404         SPOOLSS_JOB_CONTROL_DELETE=5,
405         SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER=6,
406         SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED=7
407 }
408 #else
409  { __donnot_use_enum_spoolss_JobControl=0x7FFFFFFF}
410 #define SPOOLSS_JOB_CONTROL_PAUSE ( 1 )
411 #define SPOOLSS_JOB_CONTROL_RESUME ( 2 )
412 #define SPOOLSS_JOB_CONTROL_CANCEL ( 3 )
413 #define SPOOLSS_JOB_CONTROL_RESTART ( 4 )
414 #define SPOOLSS_JOB_CONTROL_DELETE ( 5 )
415 #define SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER ( 6 )
416 #define SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED ( 7 )
417 #endif
418 ;
419
420 enum spoolss_PrinterControl
421 #ifndef USE_UINT_ENUMS
422  {
423         SPOOLSS_PRINTER_CONTROL_UNPAUSE=0,
424         SPOOLSS_PRINTER_CONTROL_PAUSE=1,
425         SPOOLSS_PRINTER_CONTROL_RESUME=2,
426         SPOOLSS_PRINTER_CONTROL_PURGE=3,
427         SPOOLSS_PRINTER_CONTROL_SET_STATUS=4
428 }
429 #else
430  { __donnot_use_enum_spoolss_PrinterControl=0x7FFFFFFF}
431 #define SPOOLSS_PRINTER_CONTROL_UNPAUSE ( 0 )
432 #define SPOOLSS_PRINTER_CONTROL_PAUSE ( 1 )
433 #define SPOOLSS_PRINTER_CONTROL_RESUME ( 2 )
434 #define SPOOLSS_PRINTER_CONTROL_PURGE ( 3 )
435 #define SPOOLSS_PRINTER_CONTROL_SET_STATUS ( 4 )
436 #endif
437 ;
438
439 struct spoolss_SetPrinterInfo0 {
440         const char *servername;/* [unique,charset(UTF16)] */
441         const char *printername;/* [unique,charset(UTF16)] */
442         uint32_t cjobs;
443         uint32_t total_jobs;
444         uint32_t total_bytes;
445         struct spoolss_Time time;
446         uint32_t global_counter;
447         uint32_t total_pages;
448         uint32_t version;
449         uint32_t free_build;
450         uint32_t spooling;
451         uint32_t max_spooling;
452         uint32_t session_counter;
453         uint32_t num_error_out_of_paper;
454         uint32_t num_error_not_ready;
455         uint32_t job_error;
456         uint32_t number_of_processors;
457         enum spoolss_ProcessorType processor_type;
458         uint32_t high_part_total_bytes;
459         uint32_t change_id;
460         WERROR last_error;
461         uint32_t status;
462         uint32_t enumerate_network_printers;
463         uint32_t c_setprinter;
464         enum spoolss_ProcessorArchitecture processor_architecture;
465         uint16_t processor_level;
466         uint32_t ref_ic;
467         uint32_t reserved2;
468         uint32_t reserved3;
469 };
470
471 struct spoolss_SetPrinterInfo1 {
472         uint32_t flags;
473         const char *name;/* [unique,charset(UTF16)] */
474         const char *description;/* [unique,charset(UTF16)] */
475         const char *comment;/* [unique,charset(UTF16)] */
476 };
477
478 struct spoolss_SetPrinterInfo2 {
479         const char *servername;/* [unique,charset(UTF16)] */
480         const char *printername;/* [unique,charset(UTF16)] */
481         const char *sharename;/* [unique,charset(UTF16)] */
482         const char *portname;/* [unique,charset(UTF16)] */
483         const char *drivername;/* [unique,charset(UTF16)] */
484         const char *comment;/* [unique,charset(UTF16)] */
485         const char *location;/* [unique,charset(UTF16)] */
486         struct spoolss_DeviceMode *devmode;/* [unique,subcontext(0)] */
487         const char *sepfile;/* [unique,charset(UTF16)] */
488         const char *printprocessor;/* [unique,charset(UTF16)] */
489         const char *datatype;/* [unique,charset(UTF16)] */
490         const char *parameters;/* [unique,charset(UTF16)] */
491         struct security_descriptor *secdesc;/* [unique,subcontext(0)] */
492         uint32_t attributes;
493         uint32_t priority;
494         uint32_t defaultpriority;
495         uint32_t starttime;
496         uint32_t untiltime;
497         uint32_t status;
498         uint32_t cjobs;
499         uint32_t averageppm;
500 };
501
502 struct spoolss_SetPrinterInfo3 {
503         struct security_descriptor *secdesc;/* [unique] */
504 };
505
506 struct spoolss_SetPrinterInfo4 {
507         const char *printername;/* [unique,charset(UTF16)] */
508         const char *servername;/* [unique,charset(UTF16)] */
509         uint32_t attributes;
510 };
511
512 struct spoolss_SetPrinterInfo5 {
513         const char *printername;/* [unique,charset(UTF16)] */
514         const char *portname;/* [unique,charset(UTF16)] */
515         uint32_t attributes;
516         uint32_t device_not_selected_timeout;
517         uint32_t transmission_retry_timeout;
518 };
519
520 struct spoolss_SetPrinterInfo6 {
521         uint32_t status;
522 };
523
524 struct spoolss_SetPrinterInfo7 {
525         const char *guid;/* [unique,charset(UTF16)] */
526         uint32_t action;
527 };
528
529 union spoolss_SetPrinterInfo {
530         struct spoolss_SetPrinterInfo0 *info0;/* [unique,case(0)] */
531         struct spoolss_SetPrinterInfo1 *info1;/* [unique,case] */
532         struct spoolss_SetPrinterInfo2 *info2;/* [unique,case(2)] */
533         struct spoolss_SetPrinterInfo3 *info3;/* [unique,case(3)] */
534         struct spoolss_SetPrinterInfo4 *info4;/* [unique,case(4)] */
535         struct spoolss_SetPrinterInfo5 *info5;/* [unique,case(5)] */
536         struct spoolss_SetPrinterInfo6 *info6;/* [unique,case(6)] */
537         struct spoolss_SetPrinterInfo7 *info7;/* [unique,case(7)] */
538         struct spoolss_DeviceModeInfo *info8;/* [unique,case(8)] */
539         struct spoolss_DeviceModeInfo *info9;/* [unique,case(9)] */
540 }/* [switch_type(uint32)] */;
541
542 struct spoolss_SetPrinterInfoCtr {
543         uint32_t level;
544         union spoolss_SetPrinterInfo info;/* [switch_is(level)] */
545 };
546
547 struct spoolss_StringArray {
548         uint32_t _ndr_size;/* [value((ndr_size_spoolss_StringArray(r,ndr->iconv_convenience,ndr->flags)-4)/2)] */
549         const char ** string;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
550 }/* [public] */;
551
552 struct spoolss_AddDriverInfo1 {
553         const char *driver_name;/* [unique,charset(UTF16)] */
554 };
555
556 enum spoolss_DriverOSVersion
557 #ifndef USE_UINT_ENUMS
558  {
559         SPOOLSS_DRIVER_VERSION_9X=0,
560         SPOOLSS_DRIVER_VERSION_NT35=1,
561         SPOOLSS_DRIVER_VERSION_NT4=2,
562         SPOOLSS_DRIVER_VERSION_200X=3
563 }
564 #else
565  { __donnot_use_enum_spoolss_DriverOSVersion=0x7FFFFFFF}
566 #define SPOOLSS_DRIVER_VERSION_9X ( 0 )
567 #define SPOOLSS_DRIVER_VERSION_NT35 ( 1 )
568 #define SPOOLSS_DRIVER_VERSION_NT4 ( 2 )
569 #define SPOOLSS_DRIVER_VERSION_200X ( 3 )
570 #endif
571 ;
572
573 struct spoolss_AddDriverInfo2 {
574         enum spoolss_DriverOSVersion version;
575         const char *driver_name;/* [unique,charset(UTF16)] */
576         const char *architecture;/* [unique,charset(UTF16)] */
577         const char *driver_path;/* [unique,charset(UTF16)] */
578         const char *data_file;/* [unique,charset(UTF16)] */
579         const char *config_file;/* [unique,charset(UTF16)] */
580 };
581
582 struct spoolss_AddDriverInfo3 {
583         enum spoolss_DriverOSVersion version;
584         const char *driver_name;/* [unique,charset(UTF16)] */
585         const char *architecture;/* [unique,charset(UTF16)] */
586         const char *driver_path;/* [unique,charset(UTF16)] */
587         const char *data_file;/* [unique,charset(UTF16)] */
588         const char *config_file;/* [unique,charset(UTF16)] */
589         const char *help_file;/* [unique,charset(UTF16)] */
590         const char *monitor_name;/* [unique,charset(UTF16)] */
591         const char *default_datatype;/* [unique,charset(UTF16)] */
592         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
593         struct spoolss_StringArray *dependent_files;/* [unique] */
594 };
595
596 struct spoolss_AddDriverInfo4 {
597         enum spoolss_DriverOSVersion version;
598         const char *driver_name;/* [unique,charset(UTF16)] */
599         const char *architecture;/* [unique,charset(UTF16)] */
600         const char *driver_path;/* [unique,charset(UTF16)] */
601         const char *data_file;/* [unique,charset(UTF16)] */
602         const char *config_file;/* [unique,charset(UTF16)] */
603         const char *help_file;/* [unique,charset(UTF16)] */
604         const char *monitor_name;/* [unique,charset(UTF16)] */
605         const char *default_datatype;/* [unique,charset(UTF16)] */
606         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
607         struct spoolss_StringArray *dependent_files;/* [unique] */
608         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */
609         struct spoolss_StringArray *previous_names;/* [unique] */
610 };
611
612 struct spoolss_AddDriverInfo5 {
613         enum spoolss_DriverOSVersion version;
614         const char *driver_name;/* [unique,charset(UTF16)] */
615         const char *architecture;/* [unique,charset(UTF16)] */
616         const char *driver_path;/* [unique,charset(UTF16)] */
617         const char *data_file;/* [unique,charset(UTF16)] */
618         const char *config_file;/* [unique,charset(UTF16)] */
619         uint32_t driver_attributes;
620         uint32_t config_version;
621         uint32_t driver_version;
622 };
623
624 struct spoolss_AddDriverInfo6 {
625         enum spoolss_DriverOSVersion version;
626         const char *driver_name;/* [unique,charset(UTF16)] */
627         const char *architecture;/* [unique,charset(UTF16)] */
628         const char *driver_path;/* [unique,charset(UTF16)] */
629         const char *data_file;/* [unique,charset(UTF16)] */
630         const char *config_file;/* [unique,charset(UTF16)] */
631         const char *help_file;/* [unique,charset(UTF16)] */
632         const char *monitor_name;/* [unique,charset(UTF16)] */
633         const char *default_datatype;/* [unique,charset(UTF16)] */
634         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
635         struct spoolss_StringArray *dependent_files;/* [unique] */
636         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */
637         struct spoolss_StringArray *previous_names;/* [unique] */
638         NTTIME driver_date;
639         uint64_t driver_version;
640         const char *manufacturer_name;/* [unique,charset(UTF16)] */
641         const char *manufacturer_url;/* [unique,charset(UTF16)] */
642         const char *hardware_id;/* [unique,charset(UTF16)] */
643         const char *provider;/* [unique,charset(UTF16)] */
644 };
645
646 struct spoolss_AddDriverInfo8 {
647         enum spoolss_DriverOSVersion version;
648         const char *driver_name;/* [unique,charset(UTF16)] */
649         const char *architecture;/* [unique,charset(UTF16)] */
650         const char *driver_path;/* [unique,charset(UTF16)] */
651         const char *data_file;/* [unique,charset(UTF16)] */
652         const char *config_file;/* [unique,charset(UTF16)] */
653         const char *help_file;/* [unique,charset(UTF16)] */
654         const char *monitor_name;/* [unique,charset(UTF16)] */
655         const char *default_datatype;/* [unique,charset(UTF16)] */
656         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
657         struct spoolss_StringArray *dependent_files;/* [unique] */
658         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */
659         struct spoolss_StringArray *previous_names;/* [unique] */
660         NTTIME driver_date;
661         uint64_t driver_version;
662         const char *manufacturer_name;/* [unique,charset(UTF16)] */
663         const char *manufacturer_url;/* [unique,charset(UTF16)] */
664         const char *hardware_id;/* [unique,charset(UTF16)] */
665         const char *provider;/* [unique,charset(UTF16)] */
666         const char *print_processor;/* [unique,charset(UTF16)] */
667         const char *vendor_setup;/* [unique,charset(UTF16)] */
668         uint32_t _ndr_size_color_profiles;/* [value(((ndr_size_spoolss_StringArray(color_profiles,ndr->iconv_convenience,ndr->flags)-4)/2))] */
669         struct spoolss_StringArray *color_profiles;/* [unique] */
670         const char *inf_path;/* [unique,charset(UTF16)] */
671         uint32_t printer_driver_attributes;
672         uint32_t _ndr_size_core_driver_dependencies;/* [value(((ndr_size_spoolss_StringArray(core_driver_dependencies,ndr->iconv_convenience,ndr->flags)-4)/2))] */
673         struct spoolss_StringArray *core_driver_dependencies;/* [unique] */
674         NTTIME min_inbox_driver_ver_date;
675         uint64_t min_inbox_driver_ver_version;
676 };
677
678 union spoolss_AddDriverInfo {
679         struct spoolss_AddDriverInfo1 *info1;/* [unique,case] */
680         struct spoolss_AddDriverInfo2 *info2;/* [unique,case(2)] */
681         struct spoolss_AddDriverInfo3 *info3;/* [unique,case(3)] */
682         struct spoolss_AddDriverInfo4 *info4;/* [unique,case(4)] */
683         struct spoolss_AddDriverInfo6 *info6;/* [unique,case(6)] */
684         struct spoolss_AddDriverInfo8 *info8;/* [unique,case(8)] */
685 }/* [switch_type(uint32)] */;
686
687 struct spoolss_AddDriverInfoCtr {
688         uint32_t level;
689         union spoolss_AddDriverInfo info;/* [switch_is(level)] */
690 };
691
692 struct spoolss_DriverInfo1 {
693         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
694 }/* [gensize,public] */;
695
696 struct spoolss_DriverInfo2 {
697         enum spoolss_DriverOSVersion version;
698         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
699         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
700         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
701         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
702         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
703 }/* [gensize,public] */;
704
705 struct spoolss_DriverInfo3 {
706         enum spoolss_DriverOSVersion version;
707         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
708         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
709         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
710         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
711         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
712         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
713         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
714         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
715         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
716 }/* [gensize,public] */;
717
718 struct spoolss_DriverInfo4 {
719         enum spoolss_DriverOSVersion version;
720         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
721         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
722         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
723         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
724         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
725         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
726         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
727         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
728         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
729         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
730 }/* [gensize,public] */;
731
732 struct spoolss_DriverInfo5 {
733         enum spoolss_DriverOSVersion version;
734         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
735         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
736         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
737         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
738         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
739         uint32_t driver_attributes;
740         uint32_t config_version;
741         uint32_t driver_version;
742 }/* [gensize,public] */;
743
744 struct spoolss_DriverInfo6 {
745         enum spoolss_DriverOSVersion version;
746         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
747         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
748         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
749         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
750         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
751         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
752         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
753         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
754         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
755         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
756         NTTIME driver_date;
757         uint64_t driver_version;
758         const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
759         const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
760         const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
761         const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
762 }/* [gensize,public] */;
763
764 struct spoolss_DriverInfo8 {
765         enum spoolss_DriverOSVersion version;
766         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
767         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
768         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
769         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
770         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
771         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
772         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
773         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
774         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
775         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
776         NTTIME driver_date;
777         uint64_t driver_version;
778         const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
779         const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
780         const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
781         const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
782         const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
783         const char * vendor_setup;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
784         const char ** color_profiles;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
785         const char * inf_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
786         uint32_t printer_driver_attributes;
787         const char ** core_driver_dependencies;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
788         NTTIME min_inbox_driver_ver_date;
789         uint64_t min_inbox_driver_ver_version;
790 }/* [gensize,public] */;
791
792 enum spoolss_DriverFileType
793 #ifndef USE_UINT_ENUMS
794  {
795         SPOOLSS_DRIVER_FILE_TYPE_RENDERING=0x00000000,
796         SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION=0x00000001,
797         SPOOLSS_DRIVER_FILE_TYPE_DATA=0x00000002,
798         SPOOLSS_DRIVER_FILE_TYPE_HELP=0x00000003,
799         SPOOLSS_DRIVER_FILE_TYPE_OTHER=0x00000004
800 }
801 #else
802  { __donnot_use_enum_spoolss_DriverFileType=0x7FFFFFFF}
803 #define SPOOLSS_DRIVER_FILE_TYPE_RENDERING ( 0x00000000 )
804 #define SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION ( 0x00000001 )
805 #define SPOOLSS_DRIVER_FILE_TYPE_DATA ( 0x00000002 )
806 #define SPOOLSS_DRIVER_FILE_TYPE_HELP ( 0x00000003 )
807 #define SPOOLSS_DRIVER_FILE_TYPE_OTHER ( 0x00000004 )
808 #endif
809 ;
810
811 struct spoolss_DriverFileInfo {
812         const char * file_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
813         enum spoolss_DriverFileType file_type;
814         uint32_t file_version;
815 }/* [public] */;
816
817 struct spoolss_DriverInfo101 {
818         enum spoolss_DriverOSVersion version;
819         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
820         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
821         struct spoolss_DriverFileInfo *file_info;/* [relative,size_is(file_count)] */
822         uint32_t file_count;
823         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
824         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
825         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
826         NTTIME driver_date;
827         uint64_t driver_version;
828         const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
829         const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
830         const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
831         const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
832 }/* [gensize,nopush,public,nopull] */;
833
834 union spoolss_DriverInfo {
835         struct spoolss_DriverInfo1 info1;/* [case] */
836         struct spoolss_DriverInfo2 info2;/* [case(2)] */
837         struct spoolss_DriverInfo3 info3;/* [case(3)] */
838         struct spoolss_DriverInfo4 info4;/* [case(4)] */
839         struct spoolss_DriverInfo5 info5;/* [case(5)] */
840         struct spoolss_DriverInfo6 info6;/* [case(6)] */
841         struct spoolss_DriverInfo8 info8;/* [case(8)] */
842         struct spoolss_DriverInfo101 info101;/* [case(101)] */
843 }/* [relative_base,nodiscriminant,public] */;
844
845 struct spoolss_DriverDirectoryInfo1 {
846         const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
847 }/* [gensize,public] */;
848
849 union spoolss_DriverDirectoryInfo {
850         struct spoolss_DriverDirectoryInfo1 info1;/* [case] */
851 }/* [gensize,relative_base,nodiscriminant,public] */;
852
853 struct spoolss_PrintProcessorInfo1 {
854         const char * print_processor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
855 };
856
857 union spoolss_PrintProcessorInfo {
858         struct spoolss_PrintProcessorInfo1 info1;/* [case] */
859 }/* [relative_base,nodiscriminant,public] */;
860
861 struct spoolss_PrintProcessorDirectoryInfo1 {
862         const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
863 }/* [gensize,public] */;
864
865 union spoolss_PrintProcessorDirectoryInfo {
866         struct spoolss_PrintProcessorDirectoryInfo1 info1;/* [case] */
867 }/* [gensize,relative_base,nodiscriminant,public] */;
868
869 struct spoolss_DocumentInfo1 {
870         const char *document_name;/* [unique,charset(UTF16)] */
871         const char *output_file;/* [unique,charset(UTF16)] */
872         const char *datatype;/* [unique,charset(UTF16)] */
873 };
874
875 union spoolss_DocumentInfo {
876         struct spoolss_DocumentInfo1 *info1;/* [unique,case] */
877 }/* [switch_type(uint32)] */;
878
879 struct spoolss_OSVersion {
880         uint32_t _ndr_size;/* [value(ndr_size_spoolss_OSVersion(r,ndr->iconv_convenience,ndr->flags))] */
881         uint32_t major;
882         uint32_t minor;
883         uint32_t build;
884         uint32_t unknown;/* [value(2)] */
885         const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
886 }/* [gensize,public] */;
887
888 struct spoolss_OSVersionEx {
889         uint32_t _ndr_size;/* [value(ndr_size_spoolss_OSVersionEx(r,ndr->iconv_convenience,ndr->flags))] */
890         uint32_t major;
891         uint32_t minor;
892         uint32_t build;
893         uint32_t unknown1;/* [value(2)] */
894         const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
895         uint32_t unknown2;
896         uint32_t unknown3;
897 }/* [gensize,public] */;
898
899 enum spoolss_PrinterDataType
900 #ifndef USE_UINT_ENUMS
901  {
902         SPOOLSS_PRINTER_DATA_TYPE_NULL=0,
903         SPOOLSS_PRINTER_DATA_TYPE_STRING=1,
904         SPOOLSS_PRINTER_DATA_TYPE_BINARY=3,
905         SPOOLSS_PRINTER_DATA_TYPE_UINT32=4,
906         SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY=7
907 }
908 #else
909  { __donnot_use_enum_spoolss_PrinterDataType=0x7FFFFFFF}
910 #define SPOOLSS_PRINTER_DATA_TYPE_NULL ( 0 )
911 #define SPOOLSS_PRINTER_DATA_TYPE_STRING ( 1 )
912 #define SPOOLSS_PRINTER_DATA_TYPE_BINARY ( 3 )
913 #define SPOOLSS_PRINTER_DATA_TYPE_UINT32 ( 4 )
914 #define SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY ( 7 )
915 #endif
916 ;
917
918 union spoolss_PrinterData {
919         const char * string;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(SPOOLSS_PRINTER_DATA_TYPE_STRING)] */
920         DATA_BLOB binary;/* [flag(LIBNDR_FLAG_REMAINING),case(SPOOLSS_PRINTER_DATA_TYPE_BINARY)] */
921         uint32_t value;/* [case(SPOOLSS_PRINTER_DATA_TYPE_UINT32)] */
922         const char ** string_array;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY)] */
923         DATA_BLOB data;/* [flag(LIBNDR_FLAG_REMAINING),default] */
924 }/* [gensize,public,nodiscriminant] */;
925
926 enum spoolss_FormFlags
927 #ifndef USE_UINT_ENUMS
928  {
929         SPOOLSS_FORM_USER=0,
930         SPOOLSS_FORM_BUILTIN=1,
931         SPOOLSS_FORM_PRINTER=2
932 }
933 #else
934  { __donnot_use_enum_spoolss_FormFlags=0x7FFFFFFF}
935 #define SPOOLSS_FORM_USER ( 0 )
936 #define SPOOLSS_FORM_BUILTIN ( 1 )
937 #define SPOOLSS_FORM_PRINTER ( 2 )
938 #endif
939 ;
940
941 struct spoolss_FormSize {
942         uint32_t width;
943         uint32_t height;
944 };
945
946 struct spoolss_FormArea {
947         uint32_t left;
948         uint32_t top;
949         uint32_t right;
950         uint32_t bottom;
951 };
952
953 struct spoolss_FormInfo1 {
954         enum spoolss_FormFlags flags;
955         const char * form_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
956         struct spoolss_FormSize size;
957         struct spoolss_FormArea area;
958 };
959
960 union spoolss_FormInfo {
961         struct spoolss_FormInfo1 info1;/* [case] */
962 }/* [relative_base,gensize,public,nodiscriminant] */;
963
964 struct spoolss_AddFormInfo1 {
965         enum spoolss_FormFlags flags;
966         const char *form_name;/* [unique,charset(UTF16)] */
967         struct spoolss_FormSize size;
968         struct spoolss_FormArea area;
969 };
970
971 union spoolss_AddFormInfo {
972         struct spoolss_AddFormInfo1 *info1;/* [unique,case] */
973 }/* [switch_type(uint32)] */;
974
975 struct spoolss_PortInfo1 {
976         const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
977 };
978
979 /* bitmap spoolss_PortType */
980 #define SPOOLSS_PORT_TYPE_WRITE ( 0x00000001 )
981 #define SPOOLSS_PORT_TYPE_READ ( 0x00000002 )
982 #define SPOOLSS_PORT_TYPE_REDIRECTED ( 0x00000004 )
983 #define SPOOLSS_PORT_TYPE_NET_ATTACHED ( 0x00000008 )
984
985 struct spoolss_PortInfo2 {
986         const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
987         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
988         const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
989         uint32_t port_type;
990         uint32_t reserved;
991 };
992
993 union spoolss_PortInfo {
994         struct spoolss_PortInfo1 info1;/* [case] */
995         struct spoolss_PortInfo2 info2;/* [case(2)] */
996 }/* [relative_base,nodiscriminant,public] */;
997
998 struct spoolss_MonitorInfo1 {
999         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1000 };
1001
1002 struct spoolss_MonitorInfo2 {
1003         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1004         const char * environment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1005         const char * dll_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1006 };
1007
1008 union spoolss_MonitorInfo {
1009         struct spoolss_MonitorInfo1 info1;/* [case] */
1010         struct spoolss_MonitorInfo2 info2;/* [case(2)] */
1011 }/* [relative_base,nodiscriminant,public] */;
1012
1013 /* bitmap spoolss_PrinterChangeFlags */
1014 #define PRINTER_CHANGE_ADD_PRINTER ( 0x00000001 )
1015 #define PRINTER_CHANGE_SET_PRINTER ( 0x00000002 )
1016 #define PRINTER_CHANGE_DELETE_PRINTER ( 0x00000004 )
1017 #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER ( 0x00000008 )
1018 #define PRINTER_CHANGE_ADD_JOB ( 0x00000100 )
1019 #define PRINTER_CHANGE_SET_JOB ( 0x00000200 )
1020 #define PRINTER_CHANGE_DELETE_JOB ( 0x00000400 )
1021 #define PRINTER_CHANGE_WRITE_JOB ( 0x00000800 )
1022 #define PRINTER_CHANGE_ADD_FORM ( 0x00010000 )
1023 #define PRINTER_CHANGE_SET_FORM ( 0x00020000 )
1024 #define PRINTER_CHANGE_DELETE_FORM ( 0x00040000 )
1025 #define PRINTER_CHANGE_ADD_PORT ( 0x00100000 )
1026 #define PRINTER_CHANGE_CONFIGURE_PORT ( 0x00200000 )
1027 #define PRINTER_CHANGE_DELETE_PORT ( 0x00400000 )
1028 #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR ( 0x01000000 )
1029 #define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR ( 0x04000000 )
1030 #define PRINTER_CHANGE_SERVER ( 0x08000000 )
1031 #define PRINTER_CHANGE_ADD_PRINTER_DRIVER ( 0x10000000 )
1032 #define PRINTER_CHANGE_SET_PRINTER_DRIVER ( 0x20000000 )
1033 #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER ( 0x40000000 )
1034 #define PRINTER_CHANGE_TIMEOUT ( 0x80000000 )
1035
1036 enum spoolss_Field
1037 #ifndef USE_UINT_ENUMS
1038  {
1039         SPOOLSS_FIELD_SERVER_NAME=0,
1040         SPOOLSS_FIELD_PRINTER_NAME=1,
1041         SPOOLSS_FIELD_SHARE_NAME=2,
1042         SPOOLSS_FIELD_PORT_NAME=3,
1043         SPOOLSS_FIELD_DRIVER_NAME=4,
1044         SPOOLSS_FIELD_COMMENT=5,
1045         SPOOLSS_FIELD_LOCATION=6,
1046         SPOOLSS_FIELD_DEVMODE=7,
1047         SPOOLSS_FIELD_SEPFILE=8,
1048         SPOOLSS_FIELD_PRINT_PROCESSOR=9,
1049         SPOOLSS_FIELD_PARAMETERS=10,
1050         SPOOLSS_FIELD_DATATYPE=11,
1051         SPOOLSS_FIELD_SECURITY_DESCRIPTOR=12,
1052         SPOOLSS_FIELD_ATTRIBUTES=13,
1053         SPOOLSS_FIELD_PRIORITY=14,
1054         SPOOLSS_FIELD_DEFAULT_PRIORITY=15,
1055         SPOOLSS_FIELD_START_TIME=16,
1056         SPOOLSS_FIELD_UNTIL_TIME=17,
1057         SPOOLSS_FIELD_STATUS=18,
1058         SPOOLSS_FIELD_STATUS_STRING=19,
1059         SPOOLSS_FIELD_CJOBS=20,
1060         SPOOLSS_FIELD_AVERAGE_PPM=21,
1061         SPOOLSS_FIELD_TOTAL_PAGES=22,
1062         SPOOLSS_FIELD_PAGES_PRINTED=23,
1063         SPOOLSS_FIELD_TOTAL_BYTES=24,
1064         SPOOLSS_FIELD_BYTES_PRINTED=25
1065 }
1066 #else
1067  { __donnot_use_enum_spoolss_Field=0x7FFFFFFF}
1068 #define SPOOLSS_FIELD_SERVER_NAME ( 0 )
1069 #define SPOOLSS_FIELD_PRINTER_NAME ( 1 )
1070 #define SPOOLSS_FIELD_SHARE_NAME ( 2 )
1071 #define SPOOLSS_FIELD_PORT_NAME ( 3 )
1072 #define SPOOLSS_FIELD_DRIVER_NAME ( 4 )
1073 #define SPOOLSS_FIELD_COMMENT ( 5 )
1074 #define SPOOLSS_FIELD_LOCATION ( 6 )
1075 #define SPOOLSS_FIELD_DEVMODE ( 7 )
1076 #define SPOOLSS_FIELD_SEPFILE ( 8 )
1077 #define SPOOLSS_FIELD_PRINT_PROCESSOR ( 9 )
1078 #define SPOOLSS_FIELD_PARAMETERS ( 10 )
1079 #define SPOOLSS_FIELD_DATATYPE ( 11 )
1080 #define SPOOLSS_FIELD_SECURITY_DESCRIPTOR ( 12 )
1081 #define SPOOLSS_FIELD_ATTRIBUTES ( 13 )
1082 #define SPOOLSS_FIELD_PRIORITY ( 14 )
1083 #define SPOOLSS_FIELD_DEFAULT_PRIORITY ( 15 )
1084 #define SPOOLSS_FIELD_START_TIME ( 16 )
1085 #define SPOOLSS_FIELD_UNTIL_TIME ( 17 )
1086 #define SPOOLSS_FIELD_STATUS ( 18 )
1087 #define SPOOLSS_FIELD_STATUS_STRING ( 19 )
1088 #define SPOOLSS_FIELD_CJOBS ( 20 )
1089 #define SPOOLSS_FIELD_AVERAGE_PPM ( 21 )
1090 #define SPOOLSS_FIELD_TOTAL_PAGES ( 22 )
1091 #define SPOOLSS_FIELD_PAGES_PRINTED ( 23 )
1092 #define SPOOLSS_FIELD_TOTAL_BYTES ( 24 )
1093 #define SPOOLSS_FIELD_BYTES_PRINTED ( 25 )
1094 #endif
1095 ;
1096
1097 enum spoolss_NotifyType
1098 #ifndef USE_UINT_ENUMS
1099  {
1100         SPOOLSS_NOTIFY_PRINTER=0,
1101         SPOOLSS_NOTIFY_JOB=1
1102 }
1103 #else
1104  { __donnot_use_enum_spoolss_NotifyType=0x7FFFFFFF}
1105 #define SPOOLSS_NOTIFY_PRINTER ( 0 )
1106 #define SPOOLSS_NOTIFY_JOB ( 1 )
1107 #endif
1108 ;
1109
1110 struct spoolss_NotifyOptionType {
1111         enum spoolss_NotifyType type;
1112         uint16_t u1;
1113         uint32_t u2;
1114         uint32_t u3;
1115         uint32_t count;
1116         enum spoolss_Field *fields;/* [unique,size_is(count)] */
1117 };
1118
1119 /* bitmap spoolssNotifyOptionFlags */
1120 #define PRINTER_NOTIFY_OPTIONS_REFRESH ( 0x00000001 )
1121
1122 struct spoolss_NotifyOption {
1123         uint32_t version;/* [value(2)] */
1124         uint32_t flags;
1125         uint32_t count;
1126         struct spoolss_NotifyOptionType *types;/* [unique,size_is(count)] */
1127 };
1128
1129 struct spoolss_NotifyString {
1130         uint32_t size;
1131         const char *string;/* [unique,charset(UTF16),size_is(size/2)] */
1132 };
1133
1134 enum spoolss_NotifyTable
1135 #ifndef USE_UINT_ENUMS
1136  {
1137         NOTIFY_TABLE_DWORD=0x0001,
1138         NOTIFY_TABLE_STRING=0x0002,
1139         NOTIFY_TABLE_DEVMODE=0x0003,
1140         NOTIFY_TABLE_TIME=0x0004,
1141         NOTIFY_TABLE_SECURITYDESCRIPTOR=0x0005
1142 }
1143 #else
1144  { __donnot_use_enum_spoolss_NotifyTable=0x7FFFFFFF}
1145 #define NOTIFY_TABLE_DWORD ( 0x0001 )
1146 #define NOTIFY_TABLE_STRING ( 0x0002 )
1147 #define NOTIFY_TABLE_DEVMODE ( 0x0003 )
1148 #define NOTIFY_TABLE_TIME ( 0x0004 )
1149 #define NOTIFY_TABLE_SECURITYDESCRIPTOR ( 0x0005 )
1150 #endif
1151 ;
1152
1153 union spoolss_NotifyData {
1154         uint32_t integer[2];/* [case] */
1155         struct spoolss_NotifyString string;/* [case(2)] */
1156         struct spoolss_DevmodeContainer devmode;/* [case(3)] */
1157         struct spoolss_TimeCtr time;/* [case(4)] */
1158         struct sec_desc_buf sd;/* [case(5)] */
1159 }/* [switch_type(uint32)] */;
1160
1161 struct spoolss_Notify {
1162         enum spoolss_NotifyType type;
1163         enum spoolss_Field field;
1164         enum spoolss_NotifyTable variable_type;
1165         uint32_t job_id;
1166         union spoolss_NotifyData data;/* [switch_is(variable_type)] */
1167 };
1168
1169 struct spoolss_NotifyInfo {
1170         uint32_t version;/* [value(2)] */
1171         uint32_t flags;
1172         uint32_t count;
1173         struct spoolss_Notify *notifies;/* [size_is(count)] */
1174 };
1175
1176 union spoolss_ReplyPrinterInfo {
1177         struct spoolss_NotifyInfo *info0;/* [unique,case(0)] */
1178 }/* [switch_type(uint32)] */;
1179
1180 /* bitmap spoolss_PrinterNotifyFlags */
1181 #define PRINTER_NOTIFY_INFO_DISCARDED ( 0x00000001 )
1182 #define PRINTER_NOTIFY_INFO_DISCARDNOTED ( 0x00010000 )
1183 #define PRINTER_NOTIFY_INFO_COLOR_MISMATCH ( 0x00080000 )
1184
1185 struct spoolss_UserLevel1 {
1186         uint32_t size;
1187         const char *client;/* [unique,charset(UTF16)] */
1188         const char *user;/* [unique,charset(UTF16)] */
1189         uint32_t build;
1190         enum spoolss_MajorVersion major;
1191         enum spoolss_MinorVersion minor;
1192         enum spoolss_ProcessorArchitecture processor;
1193 };
1194
1195 struct spoolss_UserLevel2 {
1196         uint32_t not_used;
1197 };
1198
1199 struct spoolss_UserLevel3 {
1200         uint32_t size;
1201         uint32_t flags;
1202         uint32_t size2;
1203         const char *client;/* [unique,charset(UTF16)] */
1204         const char *user;/* [unique,charset(UTF16)] */
1205         uint32_t build;
1206         enum spoolss_MajorVersion major;
1207         enum spoolss_MinorVersion minor;
1208         enum spoolss_ProcessorArchitecture processor;
1209         uint64_t reserved;
1210 };
1211
1212 union spoolss_UserLevel {
1213         struct spoolss_UserLevel1 *level1;/* [unique,case] */
1214         struct spoolss_UserLevel2 *level2;/* [unique,case(2)] */
1215         struct spoolss_UserLevel3 *level3;/* [unique,case(3)] */
1216 }/* [switch_type(uint32)] */;
1217
1218 struct spoolss_UserLevelCtr {
1219         uint32_t level;
1220         union spoolss_UserLevel user_info;/* [switch_is(level)] */
1221 };
1222
1223 /* bitmap spoolss_AccessRights */
1224 #define SERVER_ACCESS_ADMINISTER ( 0x00000001 )
1225 #define SERVER_ACCESS_ENUMERATE ( 0x00000002 )
1226 #define PRINTER_ACCESS_ADMINISTER ( 0x00000004 )
1227 #define PRINTER_ACCESS_USE ( 0x00000008 )
1228 #define JOB_ACCESS_ADMINISTER ( 0x00000010 )
1229
1230 /* bitmap spoolss_DeleteDriverFlags */
1231 #define DPD_DELETE_UNUSED_FILES ( 0x00000001 )
1232 #define DPD_DELETE_SPECIFIC_VERSION ( 0x00000002 )
1233 #define DPD_DELETE_ALL_FILES ( 0x00000004 )
1234
1235 enum spoolss_PortProtocol
1236 #ifndef USE_UINT_ENUMS
1237  {
1238         PROTOCOL_RAWTCP_TYPE=1,
1239         PROTOCOL_LPR_TYPE=2
1240 }
1241 #else
1242  { __donnot_use_enum_spoolss_PortProtocol=0x7FFFFFFF}
1243 #define PROTOCOL_RAWTCP_TYPE ( 1 )
1244 #define PROTOCOL_LPR_TYPE ( 2 )
1245 #endif
1246 ;
1247
1248 struct spoolss_PortData1 {
1249         const char *portname;/* [charset(UTF16)] */
1250         uint32_t version;/* [value(0x00000001)] */
1251         enum spoolss_PortProtocol protocol;
1252         uint32_t size;/* [value(sizeof(r))] */
1253         uint32_t reserved;
1254         const char *hostaddress;/* [charset(UTF16)] */
1255         const char *snmpcommunity;/* [charset(UTF16)] */
1256         uint32_t dblspool;
1257         const char *queue;/* [charset(UTF16)] */
1258         const char *ip_address;/* [charset(UTF16)] */
1259         const char *hardware_address;/* [charset(UTF16)] */
1260         const char *device_type;/* [charset(UTF16)] */
1261         uint32_t port_number;
1262         uint32_t snmp_enabled;
1263         uint32_t snmp_dev_index;
1264 }/* [public] */;
1265
1266 struct spoolss_PortData2 {
1267         const char *portname;/* [charset(UTF16)] */
1268         uint32_t version;/* [value(0x00000002)] */
1269         enum spoolss_PortProtocol protocol;
1270         uint32_t size;/* [value(sizeof(r))] */
1271         uint32_t reserved;
1272         const char *hostaddress;/* [charset(UTF16)] */
1273         const char *snmpcommunity;/* [charset(UTF16)] */
1274         uint32_t dblspool;
1275         const char *queue;/* [charset(UTF16)] */
1276         const char *device_type;/* [charset(UTF16)] */
1277         uint32_t port_number;
1278         uint32_t snmp_enabled;
1279         uint32_t snmp_dev_index;
1280         uint32_t port_monitor_mib_index;
1281 }/* [public] */;
1282
1283 struct spoolss_MonitorUi {
1284         const char * dll_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
1285 }/* [public] */;
1286
1287 /* bitmap spoolss_AddPrinterDriverExFlags */
1288 #define APD_STRICT_UPGRADE ( 0x00000001 )
1289 #define APD_STRICT_DOWNGRADE ( 0x00000002 )
1290 #define APD_COPY_ALL_FILES ( 0x00000004 )
1291 #define APD_COPY_NEW_FILES ( 0x00000008 )
1292 #define APD_COPY_FROM_DIRECTORY ( 0x00000010 )
1293 #define APD_DONT_COPY_FILES_TO_CLUSTER ( 0x00001000 )
1294 #define APD_COPY_TO_ALL_SPOOLERS ( 0x00002000 )
1295 #define APD_RETURN_BLOCKING_STATUS_CODE ( 0x00010000 )
1296
1297
1298 struct _spoolss_EnumPrinters {
1299         struct {
1300                 uint32_t flags;
1301                 const char *server;/* [unique,charset(UTF16)] */
1302                 uint32_t level;
1303                 DATA_BLOB *buffer;/* [unique] */
1304                 uint32_t offered;
1305         } in;
1306
1307         struct {
1308                 DATA_BLOB *info;/* [unique] */
1309                 uint32_t *needed;/* [ref] */
1310                 uint32_t *count;/* [ref] */
1311                 WERROR result;
1312         } out;
1313
1314 };
1315
1316
1317 struct __spoolss_EnumPrinters {
1318         struct {
1319                 uint32_t level;
1320                 uint32_t count;
1321         } in;
1322
1323         struct {
1324                 union spoolss_PrinterInfo *info;/* [switch_is(level)] */
1325         } out;
1326
1327 };
1328
1329
1330 struct spoolss_EnumPrinters {
1331         struct {
1332                 uint32_t flags;
1333                 const char *server;/* [unique,charset(UTF16)] */
1334                 uint32_t level;
1335                 DATA_BLOB *buffer;/* [unique] */
1336                 uint32_t offered;
1337         } in;
1338
1339         struct {
1340                 uint32_t *count;/* [ref] */
1341                 union spoolss_PrinterInfo *info;/* [unique,switch_is(level),size_is(*count)] */
1342                 uint32_t *needed;/* [ref] */
1343                 WERROR result;
1344         } out;
1345
1346 };
1347
1348
1349 struct spoolss_OpenPrinter {
1350         struct {
1351                 const char *printername;/* [unique,charset(UTF16)] */
1352                 const char *datatype;/* [unique,charset(UTF16)] */
1353                 struct spoolss_DevmodeContainer devmode_ctr;
1354                 uint32_t access_mask;
1355         } in;
1356
1357         struct {
1358                 struct policy_handle *handle;/* [ref] */
1359                 WERROR result;
1360         } out;
1361
1362 };
1363
1364
1365 struct spoolss_SetJob {
1366         struct {
1367                 struct policy_handle *handle;/* [ref] */
1368                 uint32_t job_id;
1369                 struct spoolss_JobInfoContainer *ctr;/* [unique] */
1370                 enum spoolss_JobControl command;
1371         } in;
1372
1373         struct {
1374                 WERROR result;
1375         } out;
1376
1377 };
1378
1379
1380 struct spoolss_GetJob {
1381         struct {
1382                 struct policy_handle *handle;/* [ref] */
1383                 uint32_t job_id;
1384                 uint32_t level;
1385                 DATA_BLOB *buffer;/* [unique] */
1386                 uint32_t offered;
1387         } in;
1388
1389         struct {
1390                 union spoolss_JobInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
1391                 uint32_t *needed;/* [ref] */
1392                 WERROR result;
1393         } out;
1394
1395 };
1396
1397
1398 struct _spoolss_EnumJobs {
1399         struct {
1400                 struct policy_handle *handle;/* [ref] */
1401                 uint32_t firstjob;
1402                 uint32_t numjobs;
1403                 uint32_t level;
1404                 DATA_BLOB *buffer;/* [unique] */
1405                 uint32_t offered;
1406         } in;
1407
1408         struct {
1409                 DATA_BLOB *info;/* [unique] */
1410                 uint32_t *needed;/* [ref] */
1411                 uint32_t *count;/* [ref] */
1412                 WERROR result;
1413         } out;
1414
1415 };
1416
1417
1418 struct __spoolss_EnumJobs {
1419         struct {
1420                 uint32_t level;
1421                 uint32_t count;
1422         } in;
1423
1424         struct {
1425                 union spoolss_JobInfo *info;/* [switch_is(level)] */
1426         } out;
1427
1428 };
1429
1430
1431 struct spoolss_EnumJobs {
1432         struct {
1433                 struct policy_handle *handle;/* [ref] */
1434                 uint32_t firstjob;
1435                 uint32_t numjobs;
1436                 uint32_t level;
1437                 DATA_BLOB *buffer;/* [unique] */
1438                 uint32_t offered;
1439         } in;
1440
1441         struct {
1442                 uint32_t *count;/* [ref] */
1443                 union spoolss_JobInfo *info;/* [unique,switch_is(level),size_is(*count)] */
1444                 uint32_t *needed;/* [ref] */
1445                 WERROR result;
1446         } out;
1447
1448 };
1449
1450
1451 struct spoolss_AddPrinter {
1452         struct {
1453                 WERROR result;
1454         } out;
1455
1456 };
1457
1458
1459 struct spoolss_DeletePrinter {
1460         struct {
1461                 struct policy_handle *handle;/* [ref] */
1462         } in;
1463
1464         struct {
1465                 WERROR result;
1466         } out;
1467
1468 };
1469
1470
1471 struct spoolss_SetPrinter {
1472         struct {
1473                 struct policy_handle *handle;/* [ref] */
1474                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
1475                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
1476                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
1477                 enum spoolss_PrinterControl command;
1478         } in;
1479
1480         struct {
1481                 WERROR result;
1482         } out;
1483
1484 };
1485
1486
1487 struct spoolss_GetPrinter {
1488         struct {
1489                 struct policy_handle *handle;/* [ref] */
1490                 uint32_t level;
1491                 DATA_BLOB *buffer;/* [unique] */
1492                 uint32_t offered;
1493         } in;
1494
1495         struct {
1496                 union spoolss_PrinterInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
1497                 uint32_t *needed;/* [ref] */
1498                 WERROR result;
1499         } out;
1500
1501 };
1502
1503
1504 struct spoolss_AddPrinterDriver {
1505         struct {
1506                 const char *servername;/* [unique,charset(UTF16)] */
1507                 struct spoolss_AddDriverInfoCtr *info_ctr;/* [ref] */
1508         } in;
1509
1510         struct {
1511                 WERROR result;
1512         } out;
1513
1514 };
1515
1516
1517 struct _spoolss_EnumPrinterDrivers {
1518         struct {
1519                 const char *server;/* [unique,charset(UTF16)] */
1520                 const char *environment;/* [unique,charset(UTF16)] */
1521                 uint32_t level;
1522                 DATA_BLOB *buffer;/* [unique] */
1523                 uint32_t offered;
1524         } in;
1525
1526         struct {
1527                 DATA_BLOB *info;/* [unique] */
1528                 uint32_t *needed;/* [ref] */
1529                 uint32_t *count;/* [ref] */
1530                 WERROR result;
1531         } out;
1532
1533 };
1534
1535
1536 struct __spoolss_EnumPrinterDrivers {
1537         struct {
1538                 uint32_t level;
1539                 uint32_t count;
1540         } in;
1541
1542         struct {
1543                 union spoolss_DriverInfo *info;/* [switch_is(level)] */
1544         } out;
1545
1546 };
1547
1548
1549 struct spoolss_EnumPrinterDrivers {
1550         struct {
1551                 const char *server;/* [unique,charset(UTF16)] */
1552                 const char *environment;/* [unique,charset(UTF16)] */
1553                 uint32_t level;
1554                 DATA_BLOB *buffer;/* [unique] */
1555                 uint32_t offered;
1556         } in;
1557
1558         struct {
1559                 uint32_t *count;/* [ref] */
1560                 union spoolss_DriverInfo *info;/* [unique,switch_is(level),size_is(*count)] */
1561                 uint32_t *needed;/* [ref] */
1562                 WERROR result;
1563         } out;
1564
1565 };
1566
1567
1568 struct spoolss_GetPrinterDriver {
1569         struct {
1570                 WERROR result;
1571         } out;
1572
1573 };
1574
1575
1576 struct spoolss_GetPrinterDriverDirectory {
1577         struct {
1578                 const char *server;/* [unique,charset(UTF16)] */
1579                 const char *environment;/* [unique,charset(UTF16)] */
1580                 uint32_t level;
1581                 DATA_BLOB *buffer;/* [unique] */
1582                 uint32_t offered;
1583         } in;
1584
1585         struct {
1586                 union spoolss_DriverDirectoryInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
1587                 uint32_t *needed;/* [ref] */
1588                 WERROR result;
1589         } out;
1590
1591 };
1592
1593
1594 struct spoolss_DeletePrinterDriver {
1595         struct {
1596                 const char *server;/* [unique,charset(UTF16)] */
1597                 const char *architecture;/* [charset(UTF16)] */
1598                 const char *driver;/* [charset(UTF16)] */
1599         } in;
1600
1601         struct {
1602                 WERROR result;
1603         } out;
1604
1605 };
1606
1607
1608 struct spoolss_AddPrintProcessor {
1609         struct {
1610                 const char *server;/* [unique,charset(UTF16)] */
1611                 const char *architecture;/* [charset(UTF16)] */
1612                 const char *path_name;/* [charset(UTF16)] */
1613                 const char *print_processor_name;/* [charset(UTF16)] */
1614         } in;
1615
1616         struct {
1617                 WERROR result;
1618         } out;
1619
1620 };
1621
1622
1623 struct _spoolss_EnumPrintProcessors {
1624         struct {
1625                 const char *servername;/* [unique,charset(UTF16)] */
1626                 const char *environment;/* [unique,charset(UTF16)] */
1627                 uint32_t level;
1628                 DATA_BLOB *buffer;/* [unique] */
1629                 uint32_t offered;
1630         } in;
1631
1632         struct {
1633                 DATA_BLOB *info;/* [unique] */
1634                 uint32_t *needed;/* [ref] */
1635                 uint32_t *count;/* [ref] */
1636                 WERROR result;
1637         } out;
1638
1639 };
1640
1641
1642 struct __spoolss_EnumPrintProcessors {
1643         struct {
1644                 uint32_t level;
1645                 uint32_t count;
1646         } in;
1647
1648         struct {
1649                 union spoolss_PrintProcessorInfo *info;/* [switch_is(level)] */
1650         } out;
1651
1652 };
1653
1654
1655 struct spoolss_EnumPrintProcessors {
1656         struct {
1657                 const char *servername;/* [unique,charset(UTF16)] */
1658                 const char *environment;/* [unique,charset(UTF16)] */
1659                 uint32_t level;
1660                 DATA_BLOB *buffer;/* [unique] */
1661                 uint32_t offered;
1662         } in;
1663
1664         struct {
1665                 uint32_t *count;/* [ref] */
1666                 union spoolss_PrintProcessorInfo *info;/* [unique,switch_is(level),size_is(*count)] */
1667                 uint32_t *needed;/* [ref] */
1668                 WERROR result;
1669         } out;
1670
1671 };
1672
1673
1674 struct spoolss_GetPrintProcessorDirectory {
1675         struct {
1676                 const char *server;/* [unique,charset(UTF16)] */
1677                 const char *environment;/* [unique,charset(UTF16)] */
1678                 uint32_t level;
1679                 DATA_BLOB *buffer;/* [unique] */
1680                 uint32_t offered;
1681         } in;
1682
1683         struct {
1684                 union spoolss_PrintProcessorDirectoryInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
1685                 uint32_t *needed;/* [ref] */
1686                 WERROR result;
1687         } out;
1688
1689 };
1690
1691
1692 struct spoolss_StartDocPrinter {
1693         struct {
1694                 struct policy_handle *handle;/* [ref] */
1695                 uint32_t level;
1696                 union spoolss_DocumentInfo info;/* [switch_is(level)] */
1697         } in;
1698
1699         struct {
1700                 uint32_t *job_id;/* [ref] */
1701                 WERROR result;
1702         } out;
1703
1704 };
1705
1706
1707 struct spoolss_StartPagePrinter {
1708         struct {
1709                 struct policy_handle *handle;/* [ref] */
1710         } in;
1711
1712         struct {
1713                 WERROR result;
1714         } out;
1715
1716 };
1717
1718
1719 struct spoolss_WritePrinter {
1720         struct {
1721                 struct policy_handle *handle;/* [ref] */
1722                 DATA_BLOB data;
1723                 uint32_t _data_size;/* [value(r->in.data.length)] */
1724         } in;
1725
1726         struct {
1727                 uint32_t *num_written;/* [ref] */
1728                 WERROR result;
1729         } out;
1730
1731 };
1732
1733
1734 struct spoolss_EndPagePrinter {
1735         struct {
1736                 struct policy_handle *handle;/* [ref] */
1737         } in;
1738
1739         struct {
1740                 WERROR result;
1741         } out;
1742
1743 };
1744
1745
1746 struct spoolss_AbortPrinter {
1747         struct {
1748                 struct policy_handle *handle;/* [ref] */
1749         } in;
1750
1751         struct {
1752                 WERROR result;
1753         } out;
1754
1755 };
1756
1757
1758 struct spoolss_ReadPrinter {
1759         struct {
1760                 struct policy_handle *handle;/* [ref] */
1761                 uint32_t data_size;
1762         } in;
1763
1764         struct {
1765                 uint8_t *data;/* [ref,size_is(data_size)] */
1766                 uint32_t *_data_size;/* [ref] */
1767                 WERROR result;
1768         } out;
1769
1770 };
1771
1772
1773 struct spoolss_EndDocPrinter {
1774         struct {
1775                 struct policy_handle *handle;/* [ref] */
1776         } in;
1777
1778         struct {
1779                 WERROR result;
1780         } out;
1781
1782 };
1783
1784
1785 struct spoolss_AddJob {
1786         struct {
1787                 struct policy_handle *handle;/* [ref] */
1788                 uint32_t level;
1789                 uint32_t offered;
1790                 uint8_t *buffer;/* [unique,size_is(offered)] */
1791         } in;
1792
1793         struct {
1794                 uint32_t *needed;/* [ref] */
1795                 uint8_t *buffer;/* [unique,size_is(offered)] */
1796                 WERROR result;
1797         } out;
1798
1799 };
1800
1801
1802 struct spoolss_ScheduleJob {
1803         struct {
1804                 struct policy_handle *handle;/* [ref] */
1805                 uint32_t jobid;
1806         } in;
1807
1808         struct {
1809                 WERROR result;
1810         } out;
1811
1812 };
1813
1814
1815 struct _spoolss_GetPrinterData {
1816         struct {
1817                 struct policy_handle *handle;/* [ref] */
1818                 const char *value_name;/* [charset(UTF16)] */
1819                 uint32_t offered;
1820         } in;
1821
1822         struct {
1823                 enum spoolss_PrinterDataType *type;/* [ref] */
1824                 DATA_BLOB data;
1825                 uint32_t *needed;/* [ref] */
1826                 WERROR result;
1827         } out;
1828
1829 };
1830
1831
1832 struct __spoolss_GetPrinterData {
1833         struct {
1834                 enum spoolss_PrinterDataType type;
1835         } in;
1836
1837         struct {
1838                 union spoolss_PrinterData data;/* [switch_is(type)] */
1839         } out;
1840
1841 };
1842
1843
1844 struct spoolss_GetPrinterData {
1845         struct {
1846                 struct policy_handle *handle;/* [ref] */
1847                 const char *value_name;/* [charset(UTF16)] */
1848                 uint32_t offered;
1849         } in;
1850
1851         struct {
1852                 enum spoolss_PrinterDataType *type;/* [ref] */
1853                 union spoolss_PrinterData data;/* [subcontext_size(offered),subcontext(4),switch_is(*type)] */
1854                 uint32_t *needed;/* [ref] */
1855                 WERROR result;
1856         } out;
1857
1858 };
1859
1860
1861 struct _spoolss_SetPrinterData {
1862         struct {
1863                 struct policy_handle *handle;/* [ref] */
1864                 const char *value_name;/* [charset(UTF16)] */
1865                 enum spoolss_PrinterDataType type;
1866                 DATA_BLOB data;
1867                 uint32_t _offered;
1868         } in;
1869
1870         struct {
1871                 WERROR result;
1872         } out;
1873
1874 };
1875
1876
1877 struct __spoolss_SetPrinterData {
1878         struct {
1879                 enum spoolss_PrinterDataType type;
1880         } in;
1881
1882         struct {
1883                 union spoolss_PrinterData data;/* [switch_is(type)] */
1884         } out;
1885
1886 };
1887
1888
1889 struct spoolss_SetPrinterData {
1890         struct {
1891                 struct policy_handle *handle;/* [ref] */
1892                 const char *value_name;/* [charset(UTF16)] */
1893                 enum spoolss_PrinterDataType type;
1894                 union spoolss_PrinterData data;/* [subcontext(4),switch_is(type)] */
1895                 uint32_t _offered;/* [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */
1896         } in;
1897
1898         struct {
1899                 WERROR result;
1900         } out;
1901
1902 };
1903
1904
1905 struct spoolss_WaitForPrinterChange {
1906         struct {
1907                 WERROR result;
1908         } out;
1909
1910 };
1911
1912
1913 struct spoolss_ClosePrinter {
1914         struct {
1915                 struct policy_handle *handle;/* [ref] */
1916         } in;
1917
1918         struct {
1919                 struct policy_handle *handle;/* [ref] */
1920                 WERROR result;
1921         } out;
1922
1923 };
1924
1925
1926 struct spoolss_AddForm {
1927         struct {
1928                 struct policy_handle *handle;/* [ref] */
1929                 uint32_t level;
1930                 union spoolss_AddFormInfo info;/* [switch_is(level)] */
1931         } in;
1932
1933         struct {
1934                 WERROR result;
1935         } out;
1936
1937 };
1938
1939
1940 struct spoolss_DeleteForm {
1941         struct {
1942                 struct policy_handle *handle;/* [ref] */
1943                 const char *form_name;/* [charset(UTF16)] */
1944         } in;
1945
1946         struct {
1947                 WERROR result;
1948         } out;
1949
1950 };
1951
1952
1953 struct spoolss_GetForm {
1954         struct {
1955                 struct policy_handle *handle;/* [ref] */
1956                 const char *form_name;/* [charset(UTF16)] */
1957                 uint32_t level;
1958                 DATA_BLOB *buffer;/* [unique] */
1959                 uint32_t offered;
1960         } in;
1961
1962         struct {
1963                 union spoolss_FormInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
1964                 uint32_t *needed;/* [ref] */
1965                 WERROR result;
1966         } out;
1967
1968 };
1969
1970
1971 struct spoolss_SetForm {
1972         struct {
1973                 struct policy_handle *handle;/* [ref] */
1974                 const char *form_name;/* [charset(UTF16)] */
1975                 uint32_t level;
1976                 union spoolss_AddFormInfo info;/* [switch_is(level)] */
1977         } in;
1978
1979         struct {
1980                 WERROR result;
1981         } out;
1982
1983 };
1984
1985
1986 struct _spoolss_EnumForms {
1987         struct {
1988                 struct policy_handle *handle;/* [ref] */
1989                 uint32_t level;
1990                 DATA_BLOB *buffer;/* [unique] */
1991                 uint32_t offered;
1992         } in;
1993
1994         struct {
1995                 DATA_BLOB *info;/* [unique] */
1996                 uint32_t *needed;/* [ref] */
1997                 uint32_t *count;/* [ref] */
1998                 WERROR result;
1999         } out;
2000
2001 };
2002
2003
2004 struct __spoolss_EnumForms {
2005         struct {
2006                 uint32_t level;
2007                 uint32_t count;
2008         } in;
2009
2010         struct {
2011                 union spoolss_FormInfo *info;/* [switch_is(level)] */
2012         } out;
2013
2014 };
2015
2016
2017 struct spoolss_EnumForms {
2018         struct {
2019                 struct policy_handle *handle;/* [ref] */
2020                 uint32_t level;
2021                 DATA_BLOB *buffer;/* [unique] */
2022                 uint32_t offered;
2023         } in;
2024
2025         struct {
2026                 uint32_t *count;/* [ref] */
2027                 union spoolss_FormInfo *info;/* [unique,switch_is(level),size_is(*count)] */
2028                 uint32_t *needed;/* [ref] */
2029                 WERROR result;
2030         } out;
2031
2032 };
2033
2034
2035 struct _spoolss_EnumPorts {
2036         struct {
2037                 const char *servername;/* [unique,charset(UTF16)] */
2038                 uint32_t level;
2039                 DATA_BLOB *buffer;/* [unique] */
2040                 uint32_t offered;
2041         } in;
2042
2043         struct {
2044                 DATA_BLOB *info;/* [unique] */
2045                 uint32_t *needed;/* [ref] */
2046                 uint32_t *count;/* [ref] */
2047                 WERROR result;
2048         } out;
2049
2050 };
2051
2052
2053 struct __spoolss_EnumPorts {
2054         struct {
2055                 uint32_t level;
2056                 uint32_t count;
2057         } in;
2058
2059         struct {
2060                 union spoolss_PortInfo *info;/* [switch_is(level)] */
2061         } out;
2062
2063 };
2064
2065
2066 struct spoolss_EnumPorts {
2067         struct {
2068                 const char *servername;/* [unique,charset(UTF16)] */
2069                 uint32_t level;
2070                 DATA_BLOB *buffer;/* [unique] */
2071                 uint32_t offered;
2072         } in;
2073
2074         struct {
2075                 uint32_t *count;/* [ref] */
2076                 union spoolss_PortInfo *info;/* [unique,switch_is(level),size_is(*count)] */
2077                 uint32_t *needed;/* [ref] */
2078                 WERROR result;
2079         } out;
2080
2081 };
2082
2083
2084 struct _spoolss_EnumMonitors {
2085         struct {
2086                 const char *servername;/* [unique,charset(UTF16)] */
2087                 uint32_t level;
2088                 DATA_BLOB *buffer;/* [unique] */
2089                 uint32_t offered;
2090         } in;
2091
2092         struct {
2093                 DATA_BLOB *info;/* [unique] */
2094                 uint32_t *needed;/* [ref] */
2095                 uint32_t *count;/* [ref] */
2096                 WERROR result;
2097         } out;
2098
2099 };
2100
2101
2102 struct __spoolss_EnumMonitors {
2103         struct {
2104                 uint32_t level;
2105                 uint32_t count;
2106         } in;
2107
2108         struct {
2109                 union spoolss_MonitorInfo *info;/* [switch_is(level)] */
2110         } out;
2111
2112 };
2113
2114
2115 struct spoolss_EnumMonitors {
2116         struct {
2117                 const char *servername;/* [unique,charset(UTF16)] */
2118                 uint32_t level;
2119                 DATA_BLOB *buffer;/* [unique] */
2120                 uint32_t offered;
2121         } in;
2122
2123         struct {
2124                 uint32_t *count;/* [ref] */
2125                 union spoolss_MonitorInfo *info;/* [unique,switch_is(level),size_is(*count)] */
2126                 uint32_t *needed;/* [ref] */
2127                 WERROR result;
2128         } out;
2129
2130 };
2131
2132
2133 struct spoolss_AddPort {
2134         struct {
2135                 const char *server_name;/* [unique,charset(UTF16)] */
2136                 uint32_t unknown;
2137                 const char *monitor_name;/* [charset(UTF16)] */
2138         } in;
2139
2140         struct {
2141                 WERROR result;
2142         } out;
2143
2144 };
2145
2146
2147 struct spoolss_ConfigurePort {
2148         struct {
2149                 WERROR result;
2150         } out;
2151
2152 };
2153
2154
2155 struct spoolss_DeletePort {
2156         struct {
2157                 WERROR result;
2158         } out;
2159
2160 };
2161
2162
2163 struct spoolss_CreatePrinterIC {
2164         struct {
2165                 WERROR result;
2166         } out;
2167
2168 };
2169
2170
2171 struct spoolss_PlayGDIScriptOnPrinterIC {
2172         struct {
2173                 WERROR result;
2174         } out;
2175
2176 };
2177
2178
2179 struct spoolss_DeletePrinterIC {
2180         struct {
2181                 WERROR result;
2182         } out;
2183
2184 };
2185
2186
2187 struct spoolss_AddPrinterConnection {
2188         struct {
2189                 WERROR result;
2190         } out;
2191
2192 };
2193
2194
2195 struct spoolss_DeletePrinterConnection {
2196         struct {
2197                 WERROR result;
2198         } out;
2199
2200 };
2201
2202
2203 struct spoolss_PrinterMessageBox {
2204         struct {
2205                 WERROR result;
2206         } out;
2207
2208 };
2209
2210
2211 struct spoolss_AddMonitor {
2212         struct {
2213                 WERROR result;
2214         } out;
2215
2216 };
2217
2218
2219 struct spoolss_DeleteMonitor {
2220         struct {
2221                 WERROR result;
2222         } out;
2223
2224 };
2225
2226
2227 struct spoolss_DeletePrintProcessor {
2228         struct {
2229                 WERROR result;
2230         } out;
2231
2232 };
2233
2234
2235 struct spoolss_AddPrintProvidor {
2236         struct {
2237                 WERROR result;
2238         } out;
2239
2240 };
2241
2242
2243 struct spoolss_DeletePrintProvidor {
2244         struct {
2245                 WERROR result;
2246         } out;
2247
2248 };
2249
2250
2251 struct spoolss_EnumPrintProcDataTypes {
2252         struct {
2253                 WERROR result;
2254         } out;
2255
2256 };
2257
2258
2259 struct spoolss_ResetPrinter {
2260         struct {
2261                 struct policy_handle *handle;/* [ref] */
2262                 const char *data_type;/* [unique,charset(UTF16)] */
2263                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
2264         } in;
2265
2266         struct {
2267                 WERROR result;
2268         } out;
2269
2270 };
2271
2272
2273 struct spoolss_GetPrinterDriver2 {
2274         struct {
2275                 struct policy_handle *handle;/* [ref] */
2276                 const char *architecture;/* [unique,charset(UTF16)] */
2277                 uint32_t level;
2278                 DATA_BLOB *buffer;/* [unique] */
2279                 uint32_t offered;
2280                 uint32_t client_major_version;
2281                 uint32_t client_minor_version;
2282         } in;
2283
2284         struct {
2285                 DATA_BLOB *info;/* [unique] */
2286                 uint32_t *needed;/* [ref] */
2287                 uint32_t *server_major_version;/* [ref] */
2288                 uint32_t *server_minor_version;/* [ref] */
2289                 WERROR result;
2290         } out;
2291
2292 };
2293
2294
2295 struct spoolss_FindFirstPrinterChangeNotification {
2296         struct {
2297                 WERROR result;
2298         } out;
2299
2300 };
2301
2302
2303 struct spoolss_FindNextPrinterChangeNotification {
2304         struct {
2305                 WERROR result;
2306         } out;
2307
2308 };
2309
2310
2311 struct spoolss_FindClosePrinterNotify {
2312         struct {
2313                 struct policy_handle *handle;/* [ref] */
2314         } in;
2315
2316         struct {
2317                 WERROR result;
2318         } out;
2319
2320 };
2321
2322
2323 struct spoolss_RouterFindFirstPrinterChangeNotificationOld {
2324         struct {
2325                 WERROR result;
2326         } out;
2327
2328 };
2329
2330
2331 struct spoolss_ReplyOpenPrinter {
2332         struct {
2333                 const char *server_name;/* [charset(UTF16)] */
2334                 uint32_t printer_local;
2335                 enum winreg_Type type;
2336                 uint32_t bufsize;/* [range(0,512)] */
2337                 uint8_t *buffer;/* [unique,size_is(bufsize)] */
2338         } in;
2339
2340         struct {
2341                 struct policy_handle *handle;/* [ref] */
2342                 WERROR result;
2343         } out;
2344
2345 };
2346
2347
2348 struct spoolss_RouterReplyPrinter {
2349         struct {
2350                 struct policy_handle *handle;/* [ref] */
2351                 uint32_t flags;
2352                 uint32_t bufsize;/* [range(0,512)] */
2353                 uint8_t *buffer;/* [unique,size_is(bufsize)] */
2354         } in;
2355
2356         struct {
2357                 WERROR result;
2358         } out;
2359
2360 };
2361
2362
2363 struct spoolss_ReplyClosePrinter {
2364         struct {
2365                 struct policy_handle *handle;/* [ref] */
2366         } in;
2367
2368         struct {
2369                 struct policy_handle *handle;/* [ref] */
2370                 WERROR result;
2371         } out;
2372
2373 };
2374
2375
2376 struct spoolss_AddPortEx {
2377         struct {
2378                 WERROR result;
2379         } out;
2380
2381 };
2382
2383
2384 struct spoolss_RouterFindFirstPrinterChangeNotification {
2385         struct {
2386                 WERROR result;
2387         } out;
2388
2389 };
2390
2391
2392 struct spoolss_SpoolerInit {
2393         struct {
2394                 WERROR result;
2395         } out;
2396
2397 };
2398
2399
2400 struct spoolss_ResetPrinterEx {
2401         struct {
2402                 WERROR result;
2403         } out;
2404
2405 };
2406
2407
2408 struct spoolss_RemoteFindFirstPrinterChangeNotifyEx {
2409         struct {
2410                 struct policy_handle *handle;/* [ref] */
2411                 uint32_t flags;
2412                 uint32_t options;
2413                 const char *local_machine;/* [unique,charset(UTF16)] */
2414                 uint32_t printer_local;
2415                 struct spoolss_NotifyOption *notify_options;/* [unique] */
2416         } in;
2417
2418         struct {
2419                 WERROR result;
2420         } out;
2421
2422 };
2423
2424
2425 struct spoolss_RouterReplyPrinterEx {
2426         struct {
2427                 struct policy_handle *handle;/* [ref] */
2428                 uint32_t color;
2429                 uint32_t flags;
2430                 uint32_t reply_type;
2431                 union spoolss_ReplyPrinterInfo info;/* [switch_is(reply_type)] */
2432         } in;
2433
2434         struct {
2435                 uint32_t *reply_result;/* [ref] */
2436                 WERROR result;
2437         } out;
2438
2439 };
2440
2441
2442 struct spoolss_RouterRefreshPrinterChangeNotify {
2443         struct {
2444                 struct policy_handle *handle;/* [ref] */
2445                 uint32_t change_low;
2446                 struct spoolss_NotifyOption *options;/* [unique] */
2447         } in;
2448
2449         struct {
2450                 struct spoolss_NotifyInfo **info;/* [ref] */
2451                 WERROR result;
2452         } out;
2453
2454 };
2455
2456
2457 struct spoolss_44 {
2458         struct {
2459                 WERROR result;
2460         } out;
2461
2462 };
2463
2464
2465 struct spoolss_OpenPrinterEx {
2466         struct {
2467                 const char *printername;/* [unique,charset(UTF16)] */
2468                 const char *datatype;/* [unique,charset(UTF16)] */
2469                 struct spoolss_DevmodeContainer devmode_ctr;
2470                 uint32_t access_mask;
2471                 uint32_t level;
2472                 union spoolss_UserLevel userlevel;/* [switch_is(level)] */
2473         } in;
2474
2475         struct {
2476                 struct policy_handle *handle;/* [ref] */
2477                 WERROR result;
2478         } out;
2479
2480 };
2481
2482
2483 struct spoolss_AddPrinterEx {
2484         struct {
2485                 const char *server;/* [unique,charset(UTF16)] */
2486                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
2487                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
2488                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
2489                 struct spoolss_UserLevelCtr *userlevel_ctr;/* [ref] */
2490         } in;
2491
2492         struct {
2493                 struct policy_handle *handle;/* [ref] */
2494                 WERROR result;
2495         } out;
2496
2497 };
2498
2499
2500 struct spoolss_47 {
2501         struct {
2502                 WERROR result;
2503         } out;
2504
2505 };
2506
2507
2508 struct spoolss_EnumPrinterData {
2509         struct {
2510                 struct policy_handle *handle;/* [ref] */
2511                 uint32_t enum_index;
2512                 uint32_t value_offered;
2513                 uint32_t data_offered;
2514         } in;
2515
2516         struct {
2517                 const char *value_name;/* [charset(UTF16),size_is(value_offered/2)] */
2518                 uint32_t *value_needed;/* [ref] */
2519                 uint32_t *printerdata_type;/* [ref] */
2520                 DATA_BLOB *buffer;/* [ref] */
2521                 uint32_t *data_needed;/* [ref] */
2522                 WERROR result;
2523         } out;
2524
2525 };
2526
2527
2528 struct spoolss_DeletePrinterData {
2529         struct {
2530                 struct policy_handle *handle;/* [ref] */
2531                 const char *value_name;/* [charset(UTF16)] */
2532         } in;
2533
2534         struct {
2535                 WERROR result;
2536         } out;
2537
2538 };
2539
2540
2541 struct spoolss_4a {
2542         struct {
2543                 WERROR result;
2544         } out;
2545
2546 };
2547
2548
2549 struct spoolss_4b {
2550         struct {
2551                 WERROR result;
2552         } out;
2553
2554 };
2555
2556
2557 struct spoolss_4c {
2558         struct {
2559                 WERROR result;
2560         } out;
2561
2562 };
2563
2564
2565 struct spoolss_SetPrinterDataEx {
2566         struct {
2567                 struct policy_handle *handle;/* [ref] */
2568                 const char *key_name;/* [charset(UTF16)] */
2569                 const char *value_name;/* [charset(UTF16)] */
2570                 uint32_t type;
2571                 uint8_t *buffer;/* [ref,size_is(offered)] */
2572                 uint32_t offered;
2573         } in;
2574
2575         struct {
2576                 WERROR result;
2577         } out;
2578
2579 };
2580
2581
2582 struct spoolss_GetPrinterDataEx {
2583         struct {
2584                 struct policy_handle *handle;/* [ref] */
2585                 const char *key_name;/* [charset(UTF16)] */
2586                 const char *value_name;/* [charset(UTF16)] */
2587                 uint32_t offered;
2588         } in;
2589
2590         struct {
2591                 uint32_t *type;/* [ref] */
2592                 uint8_t *buffer;/* [ref,size_is(offered)] */
2593                 uint32_t *needed;/* [ref] */
2594                 WERROR result;
2595         } out;
2596
2597 };
2598
2599
2600 struct spoolss_EnumPrinterDataEx {
2601         struct {
2602                 struct policy_handle *handle;/* [ref] */
2603                 const char *key_name;/* [charset(UTF16)] */
2604                 uint32_t offered;
2605         } in;
2606
2607         struct {
2608                 uint8_t *buffer;/* [ref,size_is(offered)] */
2609                 uint32_t *needed;/* [ref] */
2610                 uint32_t *count;/* [ref] */
2611                 WERROR result;
2612         } out;
2613
2614 };
2615
2616
2617 struct spoolss_EnumPrinterKey {
2618         struct {
2619                 struct policy_handle *handle;/* [ref] */
2620                 const char *key_name;/* [charset(UTF16)] */
2621                 uint32_t key_buffer_size;
2622         } in;
2623
2624         struct {
2625                 uint16_t *key_buffer;/* [ref,size_is(key_buffer_size/2)] */
2626                 uint32_t *needed;/* [ref] */
2627                 WERROR result;
2628         } out;
2629
2630 };
2631
2632
2633 struct spoolss_DeletePrinterDataEx {
2634         struct {
2635                 struct policy_handle *handle;/* [ref] */
2636                 const char *key_name;/* [charset(UTF16)] */
2637                 const char *value_name;/* [charset(UTF16)] */
2638         } in;
2639
2640         struct {
2641                 WERROR result;
2642         } out;
2643
2644 };
2645
2646
2647 struct spoolss_DeletePrinterKey {
2648         struct {
2649                 struct policy_handle *handle;/* [ref] */
2650                 const char *key_name;/* [charset(UTF16)] */
2651         } in;
2652
2653         struct {
2654                 WERROR result;
2655         } out;
2656
2657 };
2658
2659
2660 struct spoolss_53 {
2661         struct {
2662                 WERROR result;
2663         } out;
2664
2665 };
2666
2667
2668 struct spoolss_DeletePrinterDriverEx {
2669         struct {
2670                 const char *server;/* [unique,charset(UTF16)] */
2671                 const char *architecture;/* [charset(UTF16)] */
2672                 const char *driver;/* [charset(UTF16)] */
2673                 uint32_t delete_flags;
2674                 uint32_t version;
2675         } in;
2676
2677         struct {
2678                 WERROR result;
2679         } out;
2680
2681 };
2682
2683
2684 struct spoolss_55 {
2685         struct {
2686                 WERROR result;
2687         } out;
2688
2689 };
2690
2691
2692 struct spoolss_56 {
2693         struct {
2694                 WERROR result;
2695         } out;
2696
2697 };
2698
2699
2700 struct spoolss_57 {
2701         struct {
2702                 WERROR result;
2703         } out;
2704
2705 };
2706
2707
2708 struct spoolss_XcvData {
2709         struct {
2710                 struct policy_handle *handle;/* [ref] */
2711                 const char *function_name;/* [charset(UTF16)] */
2712                 DATA_BLOB in_data;
2713                 uint32_t _in_data_length;/* [value(r->in.in_data.length)] */
2714                 uint32_t out_data_size;
2715                 uint32_t *status_code;/* [ref] */
2716         } in;
2717
2718         struct {
2719                 uint8_t *out_data;/* [ref,size_is(out_data_size)] */
2720                 uint32_t *needed;/* [ref] */
2721                 uint32_t *status_code;/* [ref] */
2722                 WERROR result;
2723         } out;
2724
2725 };
2726
2727
2728 struct spoolss_AddPrinterDriverEx {
2729         struct {
2730                 const char *servername;/* [unique,charset(UTF16)] */
2731                 struct spoolss_AddDriverInfoCtr *info_ctr;/* [ref] */
2732                 uint32_t flags;
2733         } in;
2734
2735         struct {
2736                 WERROR result;
2737         } out;
2738
2739 };
2740
2741
2742 struct spoolss_5a {
2743         struct {
2744                 WERROR result;
2745         } out;
2746
2747 };
2748
2749
2750 struct spoolss_5b {
2751         struct {
2752                 WERROR result;
2753         } out;
2754
2755 };
2756
2757
2758 struct spoolss_5c {
2759         struct {
2760                 WERROR result;
2761         } out;
2762
2763 };
2764
2765
2766 struct spoolss_5d {
2767         struct {
2768                 WERROR result;
2769         } out;
2770
2771 };
2772
2773
2774 struct spoolss_5e {
2775         struct {
2776                 WERROR result;
2777         } out;
2778
2779 };
2780
2781
2782 struct spoolss_5f {
2783         struct {
2784                 WERROR result;
2785         } out;
2786
2787 };
2788
2789 #endif /* _HEADER_spoolss */