security descriptors are no longer a "special" type, they are handled
[samba.git] / source4 / librpc / idl / spoolss.idl
1 /*
2   spoolss interface definitions
3 */
4
5 [ uuid(12345678-1234-abcd-ef00-0123456789ab),
6   version(1.0),
7   pointer_default(unique)
8 ] interface spoolss
9 {
10         /******************/
11         /* Function: 0x00 */
12
13         typedef struct {
14                 nstring devicename;
15                 uint16 specversion;
16                 uint16 driverversion;
17                 uint16 size;
18                 uint16 driverextra;
19                 uint32 fields;
20                 uint16 orientation;
21                 uint16 papersize;
22                 uint16 paperlength;
23                 uint16 paperwidth;
24                 uint16 scale;
25                 uint16 copies;
26                 uint16 defaultsource;
27                 uint16 printquality;
28                 uint16 color;
29                 uint16 duplex;
30                 uint16 yresolution;
31                 uint16 ttoption;
32                 uint16 collate;
33                 nstring formname;
34                 uint16 logpixels;
35                 uint32 bitsperpel;
36                 uint32 pelswidth;
37                 uint32 pelsheight;
38                 uint32 displayflags;
39                 uint32 displayfrequency;
40                 uint32 icmmethod;
41                 uint32 icmintent;
42                 uint32 mediatype;
43                 uint32 dithertype;
44                 uint32 reserved1;
45                 uint32 reserved2;
46                 uint32 panningwidth;
47                 uint32 panningheight;
48                 uint8  private[driverextra];
49         } spoolss_DeviceMode;
50
51         typedef struct {
52                 uint32 flags;
53                 [relative] nstring name;
54                 [relative] nstring description;
55                 [relative] nstring comment;
56         } spoolss_PrinterInfo1;
57
58         typedef struct {
59                 [relative] nstring servername;
60                 [relative] nstring printername;
61                 [relative] nstring sharename;
62                 [relative] nstring portname;
63                 [relative] nstring drivername;
64                 [relative] nstring comment;
65                 [relative] nstring location;
66                 [relative] spoolss_DeviceMode *devmode;
67                 [relative] nstring sepfile;
68                 [relative] nstring printprocessor;
69                 [relative] nstring datatype;
70                 [relative] nstring parameters;
71                 [relative] security_descriptor *secdesc;
72                 uint32 attributes;
73                 uint32 priority;
74                 uint32 defaultpriority;
75                 uint32 starttime;
76                 uint32 untiltime;
77                 uint32 status;
78                 uint32 cjobs;
79                 uint32 averageppm;
80         } spoolss_PrinterInfo2;
81
82         typedef struct {
83                 uint32 flags;
84                 security_descriptor secdesc;
85         } spoolss_PrinterInfo3;
86
87         typedef struct {
88                 [relative] nstring printername;
89                 [relative] nstring servername;
90                 uint32 attributes;
91         } spoolss_PrinterInfo4;
92
93         typedef struct {
94                 [relative] nstring printername;
95                 [relative] nstring portname;
96                 uint32 attributes;
97                 uint32 device_not_selected_timeout;
98                 uint32 transmission_retry_timeout;
99         } spoolss_PrinterInfo5;
100
101         typedef struct {
102                 uint32 foo;
103         } spoolss_PrinterInfo6;
104
105         typedef struct {
106                 [relative] nstring guid; /* text form of printer guid */
107                 uint32 action;
108         } spoolss_PrinterInfo7;
109
110         typedef [nodiscriminant,public] union {
111                 case(1) spoolss_PrinterInfo1 info1;
112                 case(2) spoolss_PrinterInfo2 info2;
113                 case(3) spoolss_PrinterInfo3 info3;
114                 case(4) spoolss_PrinterInfo4 info4;
115                 case(5) spoolss_PrinterInfo5 info5;
116                 case(6) spoolss_PrinterInfo6 info6;
117                 case(7) spoolss_PrinterInfo7 info7;
118         } spoolss_PrinterInfo;
119
120         WERROR spoolss_EnumPrinters(
121                 [in]         uint32 flags,
122                 [in]         unistr *server,
123                 [in]         uint32 level,
124                 [in,out]     DATA_BLOB *buffer,
125                 [in,out,ref] uint32 *buf_size,
126                 [out]        uint32 count
127                 );
128
129         /******************/
130         /* Function: 0x01 */
131         WERROR spoolss_OpenPrinter(
132                 [in]        unistr *server,
133                 [in]        unistr *printer,
134                 [in]        DATA_BLOB *buffer,
135                 [in]        uint32 access_mask,
136                 [out,ref]   policy_handle *handle
137                 );
138
139         /******************/
140         /* Function: 0x02 */
141         NTSTATUS spoolss_02(
142                 );
143
144         /******************/
145         /* Function: 0x03 */
146         NTSTATUS spoolss_03(
147                 );
148
149         /******************/
150         /* Function: 0x04 */
151         NTSTATUS spoolss_EnumJobs(
152                 [in,ref] policy_handle *handle,
153                 [in]     uint32 firstjob,
154                 [in]     uint32 numjobs,
155                 [in]     uint32 level,
156                 [in,out]     DATA_BLOB *buffer,
157                 [in,out,ref] uint32 *buf_size,
158                 [out]    uint32 numjobs
159                 );
160
161         /******************/
162         /* Function: 0x05 */
163         NTSTATUS spoolss_05(
164                 );
165
166         /******************/
167         /* Function: 0x06 */
168         NTSTATUS spoolss_06(
169                 );
170
171         /******************/
172         /* Function: 0x07 */
173         NTSTATUS spoolss_07(
174                 );
175
176         /******************/
177         /* Function: 0x08 */
178         WERROR spoolss_GetPrinter(
179                 [in,ref]     policy_handle *handle,
180                 [in]         uint32 level,
181                 [in,out]     DATA_BLOB *buffer,
182                 [in,out,ref] uint32 *buf_size
183                 );
184
185         /******************/
186         /* Function: 0x09 */
187         NTSTATUS spoolss_09(
188                 );
189
190         /******************/
191         /* Function: 0x0a */
192         NTSTATUS spoolss_0a(
193                 );
194
195         /******************/
196         /* Function: 0x0b */
197         NTSTATUS spoolss_0b(
198                 );
199
200         /******************/
201         /* Function: 0x0c */
202         NTSTATUS spoolss_0c(
203                 );
204
205         /******************/
206         /* Function: 0x0d */
207         NTSTATUS spoolss_0d(
208                 );
209
210         /******************/
211         /* Function: 0x0e */
212         NTSTATUS spoolss_0e(
213                 );
214
215         /******************/
216         /* Function: 0x0f */
217         NTSTATUS spoolss_0f(
218                 );
219
220         /******************/
221         /* Function: 0x10 */
222         NTSTATUS spoolss_10(
223                 );
224
225         /******************/
226         /* Function: 0x11 */
227         NTSTATUS spoolss_11(
228                 );
229
230         /******************/
231         /* Function: 0x12 */
232         NTSTATUS spoolss_StartPagePrinter(
233                 [in,ref] policy_handle *handle          
234                 );
235
236         /******************/
237         /* Function: 0x13 */
238         NTSTATUS spoolss_13(
239                 );
240
241         /******************/
242         /* Function: 0x14 */
243         NTSTATUS spoolss_EndPagePrinter(
244                 [in,ref] policy_handle *handle          
245                 );
246
247         /******************/
248         /* Function: 0x15 */
249         NTSTATUS spoolss_15(
250                 );
251
252         /******************/
253         /* Function: 0x16 */
254         NTSTATUS spoolss_16(
255                 );
256
257         /******************/
258         /* Function: 0x17 */
259         NTSTATUS spoolss_EndDocPrinter(
260                 );
261
262         /******************/
263         /* Function: 0x18 */
264         NTSTATUS spoolss_18(
265                 );
266
267         /******************/
268         /* Function: 0x19 */
269         NTSTATUS spoolss_19(
270                 );
271
272         /******************/
273         /* Function: 0x1a */
274         NTSTATUS spoolss_1a(
275                 );
276
277         /******************/
278         /* Function: 0x1b */
279         NTSTATUS spoolss_1b(
280                 );
281
282         /******************/
283         /* Function: 0x1c */
284         NTSTATUS spoolss_1c(
285                 );
286
287         /******************/
288         /* Function: 0x1d */
289         WERROR spoolss_ClosePrinter(
290                 [in,out,ref]     policy_handle *handle
291                 );
292
293         /******************/
294         /* Function: 0x1e */
295         NTSTATUS spoolss_1e(
296                 );
297
298         /******************/
299         /* Function: 0x1f */
300         NTSTATUS spoolss_1f(
301                 );
302
303         /******************/
304         /* Function: 0x20 */
305         NTSTATUS spoolss_20(
306                 );
307
308         /******************/
309         /* Function: 0x21 */
310         NTSTATUS spoolss_21(
311                 );
312
313         /******************/
314         /* Function: 0x22 */
315         NTSTATUS spoolss_22(
316                 );
317
318         /******************/
319         /* Function: 0x23 */
320         NTSTATUS spoolss_23(
321                 );
322
323         /******************/
324         /* Function: 0x24 */
325         NTSTATUS spoolss_24(
326                 );
327
328         /******************/
329         /* Function: 0x25 */
330         NTSTATUS spoolss_25(
331                 );
332
333         /******************/
334         /* Function: 0x26 */
335         NTSTATUS spoolss_26(
336                 );
337
338         /******************/
339         /* Function: 0x27 */
340         NTSTATUS spoolss_27(
341                 );
342
343         /******************/
344         /* Function: 0x28 */
345         NTSTATUS spoolss_28(
346                 );
347
348         /******************/
349         /* Function: 0x29 */
350         NTSTATUS spoolss_29(
351                 );
352
353         /******************/
354         /* Function: 0x2a */
355         NTSTATUS spoolss_2a(
356                 );
357
358         /******************/
359         /* Function: 0x2b */
360         NTSTATUS spoolss_2b(
361                 );
362
363         /******************/
364         /* Function: 0x2c */
365         NTSTATUS spoolss_2c(
366                 );
367
368         /******************/
369         /* Function: 0x2d */
370         NTSTATUS spoolss_2d(
371                 );
372
373         /******************/
374         /* Function: 0x2e */
375         NTSTATUS spoolss_2e(
376                 );
377
378         /******************/
379         /* Function: 0x2f */
380         NTSTATUS spoolss_2f(
381                 );
382
383         /******************/
384         /* Function: 0x30 */
385         NTSTATUS spoolss_30(
386                 );
387
388         /******************/
389         /* Function: 0x31 */
390         NTSTATUS spoolss_31(
391                 );
392
393         /******************/
394         /* Function: 0x32 */
395         NTSTATUS spoolss_32(
396                 );
397
398         /******************/
399         /* Function: 0x33 */
400         NTSTATUS spoolss_33(
401                 );
402
403         /******************/
404         /* Function: 0x34 */
405         NTSTATUS spoolss_34(
406                 );
407
408         /******************/
409         /* Function: 0x35 */
410         NTSTATUS spoolss_35(
411                 );
412
413         /******************/
414         /* Function: 0x36 */
415         NTSTATUS spoolss_36(
416                 );
417
418         /******************/
419         /* Function: 0x37 */
420         NTSTATUS spoolss_37(
421                 );
422
423         /******************/
424         /* Function: 0x38 */
425         NTSTATUS spoolss_38(
426                 );
427
428         /******************/
429         /* Function: 0x39 */
430         NTSTATUS spoolss_39(
431                 );
432
433         /******************/
434         /* Function: 0x3a */
435         NTSTATUS spoolss_3a(
436                 );
437
438         /******************/
439         /* Function: 0x3b */
440         NTSTATUS spoolss_3b(
441                 );
442
443         /******************/
444         /* Function: 0x3c */
445         NTSTATUS spoolss_3c(
446                 );
447
448         /******************/
449         /* Function: 0x3d */
450         NTSTATUS spoolss_3d(
451                 );
452
453         /******************/
454         /* Function: 0x3e */
455         NTSTATUS spoolss_3e(
456                 );
457
458         /******************/
459         /* Function: 0x3f */
460         NTSTATUS spoolss_3f(
461                 );
462
463         /******************/
464         /* Function: 0x40 */
465         NTSTATUS spoolss_40(
466                 );
467
468         /******************/
469         /* Function: 0x41 */
470         NTSTATUS spoolss_41(
471                 );
472
473         /******************/
474         /* Function: 0x42 */
475         NTSTATUS spoolss_42(
476                 );
477
478         /******************/
479         /* Function: 0x43 */
480         NTSTATUS spoolss_43(
481                 );
482
483         /******************/
484         /* Function: 0x44 */
485         NTSTATUS spoolss_44(
486                 );
487
488         typedef struct {
489                 uint32 foo;
490         } spoolss_Devmode;
491
492         typedef struct {
493                 uint32 size;
494                 spoolss_Devmode *devmode;
495         } spoolss_DevmodeContainer;
496
497         typedef struct {
498                 uint32 size;
499                 unistr *client;
500                 unistr *user;
501                 uint32 build;
502                 uint32 major;
503                 uint32 minor;
504                 uint32 processor;
505         } spoolss_UserLevel1;
506
507         typedef union {
508                 case(1)  spoolss_UserLevel1 *level1;
509         } spoolss_UserLevel;
510
511         /******************/
512         /* Function: 0x45 */
513         WERROR spoolss_OpenPrinterEx(
514                 [in]                  unistr *printername,
515                 [in]                  unistr *datatype,
516                 [in]                  spoolss_DevmodeContainer devmode_ctr,
517                 [in]                  uint32 access_required,
518                 [in]                  uint32 level,
519                 [in,switch_is(level)] spoolss_UserLevel userlevel,
520                 [out,ref]             policy_handle *handle
521                 );
522
523         /******************/
524         /* Function: 0x46 */
525         NTSTATUS spoolss_46(
526                 );
527
528         /******************/
529         /* Function: 0x47 */
530         NTSTATUS spoolss_47(
531                 );
532
533         /******************/
534         /* Function: 0x48 */
535         NTSTATUS spoolss_EnumPrinterData(
536                 [in,ref] policy_handle *handle,
537                 [in]     uint32 enum_index,
538                 [in]     uint32 value_offered,
539                 [out]    uint32 value_len,
540                 [out]    unistr *value_name,
541                 [out]    uint32 value_needed,
542                 [out]    uint32 printerdata_type,
543                 [in,out]     DATA_BLOB *buffer,
544                 [in,out,ref] uint32 *buf_size
545                 );
546
547         /******************/
548         /* Function: 0x49 */
549         NTSTATUS spoolss_49(
550                 );
551
552         /******************/
553         /* Function: 0x4a */
554         NTSTATUS spoolss_4a(
555                 );
556
557         /******************/
558         /* Function: 0x4b */
559         NTSTATUS spoolss_4b(
560                 );
561
562         /******************/
563         /* Function: 0x4c */
564         NTSTATUS spoolss_4c(
565                 );
566
567         /******************/
568         /* Function: 0x4d */
569         NTSTATUS spoolss_4d(
570                 );
571
572         /******************/
573         /* Function: 0x4e */
574         NTSTATUS spoolss_4e(
575                 );
576
577         /******************/
578         /* Function: 0x4f */
579         NTSTATUS spoolss_4f(
580                 );
581
582         /******************/
583         /* Function: 0x50 */
584         NTSTATUS spoolss_50(
585                 );
586
587         /******************/
588         /* Function: 0x51 */
589         NTSTATUS spoolss_51(
590                 );
591
592         /******************/
593         /* Function: 0x52 */
594         NTSTATUS spoolss_52(
595                 );
596
597         /******************/
598         /* Function: 0x53 */
599         NTSTATUS spoolss_53(
600                 );
601
602         /******************/
603         /* Function: 0x54 */
604         NTSTATUS spoolss_54(
605                 );
606
607         /******************/
608         /* Function: 0x55 */
609         NTSTATUS spoolss_55(
610                 );
611
612         /******************/
613         /* Function: 0x56 */
614         NTSTATUS spoolss_56(
615                 );
616
617         /******************/
618         /* Function: 0x57 */
619         NTSTATUS spoolss_57(
620                 );
621
622         /******************/
623         /* Function: 0x58 */
624         NTSTATUS spoolss_58(
625                 );
626
627         /******************/
628         /* Function: 0x59 */
629         NTSTATUS spoolss_59(
630                 );
631
632         /******************/
633         /* Function: 0x5a */
634         NTSTATUS spoolss_5a(
635                 );
636
637         /******************/
638         /* Function: 0x5b */
639         NTSTATUS spoolss_5b(
640                 );
641
642         /******************/
643         /* Function: 0x5c */
644         NTSTATUS spoolss_5c(
645                 );
646
647         /******************/
648         /* Function: 0x5d */
649         NTSTATUS spoolss_5d(
650                 );
651
652         /******************/
653         /* Function: 0x5e */
654         NTSTATUS spoolss_5e(
655                 );
656
657         /******************/
658         /* Function: 0x5f */
659         NTSTATUS spoolss_5f(
660                 );
661
662 }