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