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