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