fixed srvsvc DiskEnum call
[bbaumbach/samba-autobuild/.git] / source4 / librpc / idl / srvsvc.idl
1 #include "idl_types.h"
2
3 /*
4   srvsvc interface definitions
5 */
6
7 [ uuid(4b324fc8-1670-01d3-1278-5a47bf6ee188),
8   version(3.0),
9   pointer_default(unique)
10 ] interface srvsvc
11 {
12         /******************/
13         /* Function: 0x00 */
14         NTSTATUS srvsvc_NETRCHARDEVENUM(
15                 );
16
17         /******************/
18         /* Function: 0x01 */
19         NTSTATUS srvsvc_NETRCHARDEVGETINFO(
20                 );
21
22         /******************/
23         /* Function: 0x02 */
24         NTSTATUS srvsvc_NETRCHARDEVCONTROL(
25                 );
26
27         /******************/
28         /* Function: 0x03 */
29         NTSTATUS srvsvc_NETRCHARDEVQENUM(
30                 );
31
32         /******************/
33         /* Function: 0x04 */
34         NTSTATUS srvsvc_NETRCHARDEVQGETINFO(
35                 );
36
37         /******************/
38         /* Function: 0x05 */
39         NTSTATUS srvsvc_NETRCHARDEVQSETINFO(
40                 );
41
42         /******************/
43         /* Function: 0x06 */
44         NTSTATUS srvsvc_NETRCHARDEVQPURGE(
45                 );
46
47         /******************/
48         /* Function: 0x07 */
49         NTSTATUS srvsvc_NETRCHARDEVQPURGESELF(
50                 );
51
52         /******************/
53         /* Function: 0x08 */
54
55         typedef struct {
56                 uint32 conn_id;
57         } srvsvc_NetConn0;
58
59         typedef struct {
60                 uint32 count;
61                 [size_is(count)] srvsvc_NetConn0 *array;
62         } srvsvc_NetConnCtr0;
63
64         typedef struct {
65                 uint32 conn_id;
66                 uint32 conn_type;
67                 uint32 num_open;
68                 uint32 num_users;
69                 uint32 conn_time;
70                 unistr *user;
71                 unistr *client;
72         } srvsvc_NetConn1;
73
74         typedef struct {
75                 uint32 count;
76                 [size_is(count)] srvsvc_NetConn1 *array;
77         } srvsvc_NetConnCtr1;
78
79         typedef union {
80                 [case(0)] srvsvc_NetConnCtr0 *ctr0;
81                 [case(1)] srvsvc_NetConnCtr1 *ctr1;
82                 [default] ;
83         } srvsvc_NetConnCtr;
84
85         WERROR srvsvc_NetConnEnum(
86                 [in]   unistr *server_unc,
87                 [in]   unistr *path,
88                 [in,out]   uint32 level,
89                 [in,out,switch_is(level)]   srvsvc_NetConnCtr ctr,
90                 [in]   uint32 preferred_len,
91                 [out]   uint32 total,
92                 [in,out]   uint32 *resume_handle
93                 );
94
95         /******************/
96         /* Function: 0x09 */
97
98         typedef struct {
99                 uint32 fid;
100         } srvsvc_NetFile2;
101
102         typedef struct {
103                 uint32 count;
104                 [size_is(count)] srvsvc_NetFile2 *array;
105         } srvsvc_NetFileCtr2;
106
107         typedef struct {
108                 uint32 fid;
109                 uint32 permissions;
110                 uint32 num_locks;
111                 unistr *path;
112                 unistr *user;
113         } srvsvc_NetFile3;
114
115         typedef struct {
116                 uint32 count;
117                 [size_is(count)] srvsvc_NetFile3 *array;
118         } srvsvc_NetFileCtr3;
119
120         typedef union {
121                 [case(2)] srvsvc_NetFileCtr2 *ctr2;
122                 [case(3)] srvsvc_NetFileCtr3 *ctr3;
123                 [default] ;
124         } srvsvc_NetFileCtr;
125
126         WERROR srvsvc_NetFileEnum(
127                 [in]   unistr *server_unc,
128                 [in]   unistr *path,
129                 [in]   unistr *user,
130                 [in,out] uint32 level,
131                 [in,out,switch_is(level)]   srvsvc_NetFileCtr ctr,
132                 [in]   uint32 preferred_len,
133                 [out]   uint32 total,
134                 [in,out]   uint32 *resume_handle
135                 );
136
137         /******************/
138         /* Function: 0x0a */
139         NTSTATUS srvsvc_NETRFILEGETINFO(
140                 );
141
142         /******************/
143         /* Function: 0x0b */
144         NTSTATUS srvsvc_NET_FILE_CLOSE(
145                 );
146
147         /******************/
148         /* Function: 0x0c */
149
150         typedef struct {
151                 unistr *client;
152         } srvsvc_NetSess0;
153
154         typedef struct {
155                 uint32 count;
156                 [size_is(count)] srvsvc_NetSess0 *array;
157         } srvsvc_NetSessCtr0;
158
159         typedef struct {
160                 unistr *client;
161                 unistr *user;
162                 uint32 num_open;
163                 uint32 time;
164                 uint32 idle_time;
165                 uint32 user_flags;
166         } srvsvc_NetSess1;
167
168         typedef struct {
169                 uint32 count;
170                 [size_is(count)] srvsvc_NetSess1 *array;
171         } srvsvc_NetSessCtr1;
172
173         typedef struct {
174                 unistr *client;
175                 unistr *user;
176                 uint32 num_open;
177                 uint32 time;
178                 uint32 idle_time;
179                 uint32 user_flags;
180                 unistr *client_type;
181         } srvsvc_NetSess2;
182
183         typedef struct {
184                 uint32 count;
185                 [size_is(count)] srvsvc_NetSess2 *array;
186         } srvsvc_NetSessCtr2;
187
188         typedef struct {
189                 unistr *client;
190                 unistr *user;
191                 uint32 time;
192                 uint32 idle_time;
193         } srvsvc_NetSess10;
194
195         typedef struct {
196                 uint32 count;
197                 [size_is(count)] srvsvc_NetSess10 *array;
198         } srvsvc_NetSessCtr10;
199
200         typedef struct {
201                 unistr *client;
202                 unistr *user;
203                 uint32 num_open;
204                 uint32 time;
205                 uint32 idle_time;
206                 uint32 user_flags;
207                 unistr *client_type;
208                 unistr *transport;
209         } srvsvc_NetSess502;
210
211         typedef struct {
212                 uint32 count;
213                 [size_is(count)] srvsvc_NetSess502 *array;
214         } srvsvc_NetSessCtr502;
215
216         typedef union {
217                 [case(0)] srvsvc_NetSessCtr0 *ctr0;
218                 [case(1)] srvsvc_NetSessCtr1 *ctr1;
219                 [case(2)] srvsvc_NetSessCtr2 *ctr2;
220                 [case(10)] srvsvc_NetSessCtr10 *ctr10;
221                 [case(502)] srvsvc_NetSessCtr502 *ctr502;
222                 [default] ;
223         } srvsvc_NetSessCtr;
224
225         WERROR srvsvc_NetSessEnum(
226                 [in]   unistr *server_unc,
227                 [in]   unistr *client,
228                 [in]   unistr *user,
229                 [in,out]   uint32 level,
230                 [in,out,switch_is(level)]   srvsvc_NetSessCtr ctr,
231                 [in]   uint32 preferred_len,
232                 [out]   uint32 total,
233                 [in,out]   uint32 *resume_handle
234                 );
235
236         /******************/
237         /* Function: 0x0d */
238         NTSTATUS srvsvc_NETRSESSIONDEL(
239                 );
240
241         /******************/
242         /* Function: 0x0e */
243         NTSTATUS srvsvc_NET_SHARE_ADD(
244                 );
245
246         /******************/
247         /* Function: 0x0f */
248
249         typedef struct {
250                 unistr *name;
251         } srvsvc_NetShare0;
252
253         typedef struct {
254                 uint32 count;
255                 [size_is(count)] srvsvc_NetShare0 *array;
256         } srvsvc_NetShareCtr0;
257
258         typedef struct {
259                 unistr *name;
260                 uint32 type;
261                 unistr *comment;
262         } srvsvc_NetShare1;
263
264         typedef struct {
265                 uint32 count;
266                 [size_is(count)] srvsvc_NetShare1 *array;
267         } srvsvc_NetShareCtr1;
268
269         typedef struct {
270                 unistr *name;
271                 uint32 type;
272                 unistr *comment;
273                 uint32 permissions;
274                 uint32 max_users;
275                 uint32 current_users;
276                 unistr *path;
277                 unistr *password;
278         } srvsvc_NetShare2;
279
280         typedef struct {
281                 uint32 count;
282                 [size_is(count)] srvsvc_NetShare2 *array;
283         } srvsvc_NetShareCtr2;
284
285         typedef struct {
286                 unistr *name;
287                 uint32 type;
288                 unistr *comment;
289                 uint32 csc_policy;
290         } srvsvc_NetShare501;
291
292         typedef struct {
293                 uint32 count;
294                 [size_is(count)] srvsvc_NetShare501 *array;
295         } srvsvc_NetShareCtr501;
296
297         typedef struct {
298                 unistr *name;
299                 uint32 type;
300                 unistr *comment;
301                 uint32 permissions;
302                 uint32 max_users;
303                 uint32 current_users;
304                 unistr *path;
305                 unistr *password;
306                 uint32 unknown;
307                 [subcontext(4)] security_descriptor *sd;
308         } srvsvc_NetShare502;
309
310         typedef struct {
311                 uint32 count;
312                 [size_is(count)] srvsvc_NetShare502 *array;
313         } srvsvc_NetShareCtr502;
314
315         typedef struct {
316                 unistr *comment;
317         } srvsvc_NetShare1004;
318
319         typedef union {
320                 [case(0)] srvsvc_NetShareCtr0 *ctr0;
321                 [case(1)] srvsvc_NetShareCtr1 *ctr1;
322                 [case(2)] srvsvc_NetShareCtr2 *ctr2;
323                 [case(501)] srvsvc_NetShareCtr501 *ctr501;
324                 [case(502)] srvsvc_NetShareCtr502 *ctr502;
325                 [default] ;
326         } srvsvc_NetShareCtr;
327
328         WERROR srvsvc_NetShareEnumAll (
329                 [in]         unistr *server_unc,
330                 [in,out]     uint32 level,
331                 [in,out,switch_is(level)] srvsvc_NetShareCtr ctr,
332                 [in]         uint32 max_buffer,
333                 [out]        uint32 totalentries,
334                 [in,out]     uint32 *resume_handle
335                 );
336
337         /******************/
338         /* Function: 0x10 */
339         NTSTATUS srvsvc_NET_SHARE_GET_INFO(
340                 );
341
342         /******************/
343         /* Function: 0x11 */
344         NTSTATUS srvsvc_NET_SHARE_SET_INFO(
345                 );
346
347         /******************/
348         /* Function: 0x12 */
349         NTSTATUS srvsvc_NET_SHARE_DEL(
350                 );
351
352         /******************/
353         /* Function: 0x13 */
354         NTSTATUS srvsvc_NET_SHARE_DEL_STICKY(
355                 );
356         
357         /******************/
358         /* Function: 0x14 */
359         NTSTATUS srvsvc_NETRSHARECHECK(
360                 );
361
362         /******************/
363         /* Function: 0x15 */
364         NTSTATUS srvsvc_NET_SRV_GET_INFO(
365                 );
366
367         /******************/
368         /* Function: 0x16 */
369         NTSTATUS srvsvc_NET_SRV_SET_INFO(
370                 );
371
372         /******************/
373         /* Function: 0x17 */
374
375         typedef struct {
376                 uint32 unknown;
377                 lstring disk;
378                 uint16 unknown2;
379         } srvsvc_NetDisk0;
380
381         typedef struct {
382                 uint32 unknown;
383                 uint32 count;
384                 [size_is(count)] srvsvc_NetDisk0 array[];
385         } srvsvc_NetDiskCtr0;
386
387         typedef union {
388                 [case(0)]  srvsvc_NetDiskCtr0 *ctr0;
389         } srvsvc_NetDiskCtr;
390
391         WERROR srvsvc_NetDiskEnum(
392                 [in]      unistr *server_unc,
393                 [in]      uint32 level,
394                 [out]     uint32 num_entries,
395                 [in,switch_is(level)] srvsvc_NetDiskCtr ctr,
396                 [out]     srvsvc_NetDiskCtr0 *disks,
397                 [in]      uint32 unknown,
398                 [out]     uint32 max_entries,
399                 [in,out]  uint32 *resume_handle
400                 );
401
402         /******************/
403         /* Function: 0x18 */
404         NTSTATUS srvsvc_NETRSERVERSTATISTICSGET(
405                 );
406
407         /******************/
408         /* Function: 0x19 */
409         NTSTATUS srvsvc_NETRSERVERTRANSPORTADD(
410                 );
411                 
412         /******************/
413         /* Function: 0x1a */
414
415         typedef struct {
416                 uint32 count;
417                 uint8 addr[count];
418         } srvsvc_TransportAddress;
419
420         typedef struct {
421                 uint32 vcs;
422                 unistr *name;
423                 srvsvc_TransportAddress *addr;
424                 uint32 addr_len;
425                 unistr *net_addr;
426         } srvsvc_NetTransport0;
427
428         typedef struct {
429                 uint32 count;
430                 [size_is(count)] srvsvc_NetTransport0 *array;
431         } srvsvc_NetTransportCtr0;
432
433         typedef struct {
434                 uint32 vcs;
435                 unistr *name;
436                 srvsvc_TransportAddress *addr;
437                 uint32 addr_len;
438                 unistr *net_addr;
439                 unistr *domain;
440         } srvsvc_NetTransport1;
441
442         typedef struct {
443                 uint32 count;
444                 [size_is(count)] srvsvc_NetTransport1 *array;
445         } srvsvc_NetTransportCtr1;
446
447         typedef struct {
448                 uint32 dummy;
449         } srvsvc_NetTransport2;
450
451         typedef struct {
452                 uint32 count;
453                 [size_is(count)] srvsvc_NetTransport2 *array;
454         } srvsvc_NetTransportCtr2;
455
456         typedef struct {
457                 uint32 dummy;
458         } srvsvc_NetTransport3;
459
460         typedef struct {
461                 uint32 count;
462                 [size_is(count)] srvsvc_NetTransport3 *array;
463         } srvsvc_NetTransportCtr3;
464
465         typedef union {
466                 [case(0)] srvsvc_NetTransportCtr0 *ctr0;
467                 [case(1)] srvsvc_NetTransportCtr1 *ctr1;
468                 [case(2)] srvsvc_NetTransportCtr2 *ctr2;
469                 [case(3)] srvsvc_NetTransportCtr3 *ctr3;
470                 [default];
471         } srvsvc_NetTransportCtr;
472
473         WERROR srvsvc_NetTransportEnum(
474                 [in]   unistr *server_unc,
475                 [in,out] uint32 level,
476                 [in,out,switch_is(level)]   srvsvc_NetTransportCtr ctr,
477                 [in]   uint32 preferred_len,
478                 [out]   uint32 total,
479                 [in,out]   uint32 *resume_handle
480                 );
481
482         /******************/
483         /* Function: 0x1b */
484         NTSTATUS srvsvc_NETRSERVERTRANSPORTDEL(
485                 );
486
487         /******************/
488         /* Function: 0x1c */
489         NTSTATUS srvsvc_NET_REMOTE_TOD(
490                 );
491
492         /******************/
493         /* Function: 0x1d */
494         NTSTATUS srvsvc_NETRSERVERSETSERVICEBITS(
495                 );
496
497         /******************/
498         /* Function: 0x1e */
499         NTSTATUS srvsvc_NETRPRPATHTYPE(
500                 );
501
502         /******************/
503         /* Function: 0x1f */
504         NTSTATUS srvsvc_NETRPRPATHCANONICALIZE(
505                 );
506
507         /******************/
508         /* Function: 0x20 */
509         NTSTATUS srvsvc_NETRPRPATHCOMPARE(
510                 );
511
512         /******************/
513         /* Function: 0x21 */
514         NTSTATUS srvsvc_NET_NAME_VALIDATE(
515                 );
516
517         /******************/
518         /* Function: 0x22 */
519         NTSTATUS srvsvc_NETRPRNAMECANONICALIZE(
520                 );
521
522         /******************/
523         /* Function: 0x23 */
524         NTSTATUS srvsvc_NETRPRNAMECOMPARE(
525                 );
526
527         /******************/
528         /* Function: 0x24 */
529         /* Note, there must be some way to return entries read vs 
530            total entries ... */
531         WERROR srvsvc_NetShareEnum(
532                 [in]       unistr *server_unc,
533                 [in,out]   uint32 level,
534                 [in,out,switch_is(level)]   srvsvc_NetShareCtr ctr,
535                 [in]       uint32 preferred_len,
536                 [out]      uint32 totalentries,
537                 [in,out]   uint32 *resume_handle
538                 );
539
540         /******************/
541         /* Function: 0x25 */
542         NTSTATUS srvsvc_NETRSHAREDELSTART(
543                 );
544
545         /******************/
546         /* Function: 0x26 */
547         NTSTATUS srvsvc_NETRSHAREDELCOMMIT(
548                 );
549
550         /******************/
551         /* Function: 0x27 */
552         NTSTATUS srvsvc_NET_FILE_QUERY_SECDESC(
553                 );
554
555         /******************/
556         /* Function: 0x28 */
557         NTSTATUS srvsvc_NET_FILE_SET_SECDESC(
558                 );
559
560         /******************/
561         /* Function: 0x29 */
562         NTSTATUS srvsvc_NETRSERVERTRANSPORTADDEX(
563                 );
564
565         /******************/
566         /* Function: 0x2a */
567         NTSTATUS srvsvc_NETRSERVERSETSERVICEBITSEX(
568                 );
569
570         /******************/
571         /* Function: 0x2b */
572         NTSTATUS srvsvc_NETRDFSGETVERSION(
573                 );
574
575         /******************/
576         /* Function: 0x2c */
577         NTSTATUS srvsvc_NETRDFSCREATELOCALPARTITION(
578                 );
579
580         /******************/
581         /* Function: 0x2d */
582         NTSTATUS srvsvc_NETRDFSDELETELOCALPARTITION(
583                 );
584
585         /******************/
586         /* Function: 0x2e */
587         NTSTATUS srvsvc_NETRDFSSETLOCALVOLUMESTATE(
588                 );
589
590         /******************/
591         /* Function: 0x2f */
592         NTSTATUS srvsvc_NETRDFSSETSERVERINFO(
593                 );
594
595         /******************/
596         /* Function: 0x30 */
597         NTSTATUS srvsvc_NETRDFSCREATEEXITPOINT(
598                 );
599
600         /******************/
601         /* Function: 0x31 */
602         NTSTATUS srvsvc_NETRDFSDELETEEXITPOINT(
603                 );
604
605         /******************/
606         /* Function: 0x32 */
607         NTSTATUS srvsvc_NETRDFSMODIFYPREFIX(
608                 );
609
610         /******************/
611         /* Function: 0x33 */
612         NTSTATUS srvsvc_NETRDFSFIXLOCALVOLUME(
613                 );
614
615         /******************/
616         /* Function: 0x34 */
617         NTSTATUS srvsvc_NETRDFSMANAGERREPORTSITEINFO(
618                 );
619
620         /******************/
621         /* Function: 0x35 */
622         NTSTATUS srvsvc_NETRSERVERTRANSPORTDELEX(
623                 );
624 }