r4434: - fix some NetShare* idl functions
[samba.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   helpstring("Server Service"),
11   depends(security)
12 ] interface srvsvc
13 {
14 /**************************/
15 /* srvsvc_NetCharDev      */
16 /**************************/
17         typedef struct {
18                 unistr *device;
19         } srvsvc_NetCharDevInfo0;
20
21         typedef struct {
22                 uint32 count;
23                 [size_is(count)] srvsvc_NetCharDevInfo0 *array;
24         } srvsvc_NetCharDevCtr0;
25
26         typedef struct {
27                 unistr *device;
28                 uint32 status;
29                 unistr *user;
30                 uint32 time;
31         } srvsvc_NetCharDevInfo1;
32
33         typedef struct {
34                 uint32 count;
35                 [size_is(count)] srvsvc_NetCharDevInfo1 *array;
36         } srvsvc_NetCharDevCtr1;
37
38         typedef union {
39                 [case(0)] srvsvc_NetCharDevInfo0 *info0;
40                 [case(1)] srvsvc_NetCharDevInfo1 *info1;
41                 [default] ;
42         } srvsvc_NetCharDevInfo;
43
44         typedef union {
45                 [case(0)] srvsvc_NetCharDevCtr0 *ctr0;
46                 [case(1)] srvsvc_NetCharDevCtr1 *ctr1;
47                 [default] ;
48         } srvsvc_NetCharDevCtr;
49
50         /******************/
51         /* Function: 0x00 */
52         WERROR srvsvc_NetCharDevEnum(
53                 [in]   unistr *server_unc, 
54                 [in,out]   uint32 level,
55                 [in,out,switch_is(level)]   srvsvc_NetCharDevCtr ctr,
56                 [in]   uint32 max_buffer,
57                 [out]   uint32 totalentries,
58                 [in,out]   uint32 *resume_handle
59                 );
60
61         /******************/
62         /* Function: 0x01 */
63         WERROR srvsvc_NetCharDevGetInfo(
64                 [in]   unistr *server_unc,
65                 [in]   unistr device_name,
66                 [in]   uint32 level,
67                 [out,switch_is(level)]   srvsvc_NetCharDevInfo info
68                 );
69
70         /******************/
71         /* Function: 0x02 */
72         WERROR srvsvc_NetCharDevControl(
73                 [in]   unistr *server_unc,
74                 [in]   unistr device_name,
75                 [in]   uint32 opcode
76                 );
77
78 /**************************/
79 /* srvsvc_NetCharDevQ     */
80 /**************************/
81         typedef struct {
82                 unistr *device;
83         } srvsvc_NetCharDevQInfo0;
84
85         typedef struct {
86                 uint32 count;
87                 [size_is(count)] srvsvc_NetCharDevQInfo0 *array;
88         } srvsvc_NetCharDevQCtr0;
89
90         typedef struct {
91                 unistr *device;
92                 uint32 priority;
93                 unistr *devices;
94                 uint32 users;
95                 uint32 num_ahead;
96         } srvsvc_NetCharDevQInfo1;
97
98         typedef struct {
99                 uint32 count;
100                 [size_is(count)] srvsvc_NetCharDevQInfo1 *array;
101         } srvsvc_NetCharDevQCtr1;
102
103         typedef union {
104                 [case(0)] srvsvc_NetCharDevQInfo0 *info0;
105                 [case(1)] srvsvc_NetCharDevQInfo1 *info1;
106                 [default] ;
107         } srvsvc_NetCharDevQInfo;
108
109         typedef union {
110                 [case(0)] srvsvc_NetCharDevQCtr0 *ctr0;
111                 [case(1)] srvsvc_NetCharDevQCtr1 *ctr1;
112                 [default] ;
113         } srvsvc_NetCharDevQCtr;
114
115         /******************/
116         /* Function: 0x03 */
117         WERROR srvsvc_NetCharDevQEnum(
118                 [in]   unistr *server_unc,
119                 [in]   unistr *user,
120                 [in,out]   uint32 level,
121                 [in,out,switch_is(level)]   srvsvc_NetCharDevQCtr ctr,
122                 [in]   uint32 max_buffer,
123                 [out]   uint32 totalentries,
124                 [in,out]   uint32 *resume_handle
125                 );
126
127         /******************/
128         /* Function: 0x04 */
129         WERROR srvsvc_NetCharDevQGetInfo(
130                 [in]   unistr *server_unc,
131                 [in]   unistr queue_name,
132                 [in]   unistr user,
133                 [in]   uint32 level,
134                 [out,switch_is(level)]   srvsvc_NetCharDevQInfo info
135                 );
136
137         /******************/
138         /* Function: 0x05 */
139         WERROR srvsvc_NetCharDevQSetInfo(
140                 [in]   unistr *server_unc,
141                 [in]   unistr queue_name,
142                 [in]   uint32 level,
143                 [in,switch_is(level)]   srvsvc_NetCharDevQInfo info,
144                 [in,out]   uint32 *parm_error
145                 );
146
147         /******************/
148         /* Function: 0x06 */
149         WERROR srvsvc_NetCharDevQPurge(
150                 [in]   unistr *server_unc,
151                 [in]   unistr queue_name
152                 );
153
154         /******************/
155         /* Function: 0x07 */
156         WERROR srvsvc_NetCharDevQPurgeSelf(
157                 [in]   unistr *server_unc,
158                 [in]   unistr queue_name,
159                 [in]   unistr computer_name
160                 );
161
162 /**************************/
163 /* srvsvc_NetConn         */
164 /**************************/
165         typedef struct {
166                 uint32 conn_id;
167         } srvsvc_NetConnInfo0;
168
169         typedef struct {
170                 uint32 count;
171                 [size_is(count)] srvsvc_NetConnInfo0 *array;
172         } srvsvc_NetConnCtr0;
173
174         typedef struct {
175                 uint32 conn_id;
176                 uint32 conn_type;
177                 uint32 num_open;
178                 uint32 num_users;
179                 uint32 conn_time;
180                 unistr *user;
181                 unistr *client;
182         } srvsvc_NetConnInfo1;
183
184         typedef struct {
185                 uint32 count;
186                 [size_is(count)] srvsvc_NetConnInfo1 *array;
187         } srvsvc_NetConnCtr1;
188
189         typedef union {
190                 [case(0)] srvsvc_NetConnCtr0 *ctr0;
191                 [case(1)] srvsvc_NetConnCtr1 *ctr1;
192                 [default] ;
193         } srvsvc_NetConnCtr;
194
195         /******************/
196         /* Function: 0x08 */
197         WERROR srvsvc_NetConnEnum(
198                 [in]   unistr *server_unc,
199                 [in]   unistr *path,
200                 [in,out]   uint32 level,
201                 [in,out,switch_is(level)]   srvsvc_NetConnCtr ctr,
202                 [in]   uint32 max_buffer,
203                 [out]   uint32 totalentries,
204                 [in,out]   uint32 *resume_handle
205                 );
206
207 /**************************/
208 /* srvsvc_NetFile         */
209 /**************************/
210         typedef struct {
211                 uint32 fid;
212         } srvsvc_NetFileInfo2;
213
214         typedef struct {
215                 uint32 count;
216                 [size_is(count)] srvsvc_NetFileInfo2 *array;
217         } srvsvc_NetFileCtr2;
218
219         typedef struct {
220                 uint32 fid;
221                 uint32 permissions;
222                 uint32 num_locks;
223                 unistr *path;
224                 unistr *user;
225         } srvsvc_NetFileInfo3;
226
227         typedef struct {
228                 uint32 count;
229                 [size_is(count)] srvsvc_NetFileInfo3 *array;
230         } srvsvc_NetFileCtr3;
231
232         typedef union {
233                 [case(2)] srvsvc_NetFileInfo2 *info2;
234                 [case(3)] srvsvc_NetFileInfo3 *info3;
235                 [default] ;
236         } srvsvc_NetFileInfo;
237
238         typedef union {
239                 [case(2)] srvsvc_NetFileCtr2 *ctr2;
240                 [case(3)] srvsvc_NetFileCtr3 *ctr3;
241                 [default] ;
242         } srvsvc_NetFileCtr;
243
244         /******************/
245         /* Function: 0x09 */
246         WERROR srvsvc_NetFileEnum(
247                 [in]   unistr *server_unc,
248                 [in]   unistr *path,
249                 [in]   unistr *user,
250                 [in,out]   uint32 level,
251                 [in,out,switch_is(level)]   srvsvc_NetFileCtr ctr,
252                 [in]   uint32 max_buffer,
253                 [out]   uint32 totalentries,
254                 [in,out]   uint32 *resume_handle
255                 );
256
257         /******************/
258         /* Function: 0x0a */
259         WERROR srvsvc_NetFileGetInfo(
260                 [in]   unistr *server_unc,
261                 [in]   uint32 fid,
262                 [in]   uint32 level,
263                 [out,switch_is(level)]   srvsvc_NetFileInfo info
264                 );
265
266         /******************/
267         /* Function: 0x0b */
268         WERROR srvsvc_NetFileClose(
269                 [in]   unistr *server_unc,
270                 [in]   uint32 fid       
271                 );
272
273 /**************************/
274 /* srvsvc_NetSess         */
275 /**************************/
276         typedef struct {
277                 unistr *client;
278         } srvsvc_NetSessInfo0;
279
280         typedef struct {
281                 uint32 count;
282                 [size_is(count)] srvsvc_NetSessInfo0 *array;
283         } srvsvc_NetSessCtr0;
284
285         typedef struct {
286                 unistr *client;
287                 unistr *user;
288                 uint32 num_open;
289                 uint32 time;
290                 uint32 idle_time;
291                 uint32 user_flags;
292         } srvsvc_NetSessInfo1;
293
294         typedef struct {
295                 uint32 count;
296                 [size_is(count)] srvsvc_NetSessInfo1 *array;
297         } srvsvc_NetSessCtr1;
298
299         typedef struct {
300                 unistr *client;
301                 unistr *user;
302                 uint32 num_open;
303                 uint32 time;
304                 uint32 idle_time;
305                 uint32 user_flags;
306                 unistr *client_type;
307         } srvsvc_NetSessInfo2;
308
309         typedef struct {
310                 uint32 count;
311                 [size_is(count)] srvsvc_NetSessInfo2 *array;
312         } srvsvc_NetSessCtr2;
313
314         typedef struct {
315                 unistr *client;
316                 unistr *user;
317                 uint32 time;
318                 uint32 idle_time;
319         } srvsvc_NetSessInfo10;
320
321         typedef struct {
322                 uint32 count;
323                 [size_is(count)] srvsvc_NetSessInfo10 *array;
324         } srvsvc_NetSessCtr10;
325
326         typedef struct {
327                 unistr *client;
328                 unistr *user;
329                 uint32 num_open;
330                 uint32 time;
331                 uint32 idle_time;
332                 uint32 user_flags;
333                 unistr *client_type;
334                 unistr *transport;
335         } srvsvc_NetSessInfo502;
336
337         typedef struct {
338                 uint32 count;
339                 [size_is(count)] srvsvc_NetSessInfo502 *array;
340         } srvsvc_NetSessCtr502;
341
342         typedef union {
343                 [case(0)] srvsvc_NetSessCtr0 *ctr0;
344                 [case(1)] srvsvc_NetSessCtr1 *ctr1;
345                 [case(2)] srvsvc_NetSessCtr2 *ctr2;
346                 [case(10)] srvsvc_NetSessCtr10 *ctr10;
347                 [case(502)] srvsvc_NetSessCtr502 *ctr502;
348                 [default] ;
349         } srvsvc_NetSessCtr;
350
351         /******************/
352         /* Function: 0x0c */
353         WERROR srvsvc_NetSessEnum(
354                 [in]   unistr *server_unc,
355                 [in]   unistr *client,
356                 [in]   unistr *user,
357                 [in,out]   uint32 level,
358                 [in,out,switch_is(level)]   srvsvc_NetSessCtr ctr,
359                 [in]   uint32 max_buffer,
360                 [out]   uint32 totalentries,
361                 [in,out]   uint32 *resume_handle
362                 );
363
364         /******************/
365         /* Function: 0x0d */
366         WERROR srvsvc_NetSessDel(
367                 [in]   unistr *server_unc,
368                 [in]   unistr *client,
369                 [in]   unistr *user
370                 );
371
372 /**************************/
373 /* srvsvc_NetShare        */
374 /**************************/
375
376         /* share types */
377         const int STYPE_DISKTREE = 0;
378         const int STYPE_PRINTQ   = 1;
379         const int STYPE_DEVICE   = 2;   /* Serial device */
380         const int STYPE_IPC      = 3;   /* Interprocess communication (IPC) */
381         const int STYPE_HIDDEN   = 0x80000000; /* share is a hidden one */
382
383         typedef struct {
384                 unistr *name;
385         } srvsvc_NetShareInfo0;
386
387         typedef struct {
388                 uint32 count;
389                 [size_is(count)] srvsvc_NetShareInfo0 *array;
390         } srvsvc_NetShareCtr0;
391
392         typedef struct {
393                 unistr *name;
394                 uint32 type;
395                 unistr *comment;
396         } srvsvc_NetShareInfo1;
397
398         typedef struct {
399                 uint32 count;
400                 [size_is(count)] srvsvc_NetShareInfo1 *array;
401         } srvsvc_NetShareCtr1;
402
403         typedef struct {
404                 unistr *name;
405                 uint32 type;
406                 unistr *comment;
407                 uint32 permissions;
408                 uint32 max_users;
409                 uint32 current_users;
410                 unistr *path;
411                 unistr *password;
412         } srvsvc_NetShareInfo2;
413
414         typedef struct {
415                 uint32 count;
416                 [size_is(count)] srvsvc_NetShareInfo2 *array;
417         } srvsvc_NetShareCtr2;
418
419         typedef struct {
420                 unistr *name;
421                 uint32 type;
422                 unistr *comment;
423                 uint32 csc_policy;
424         } srvsvc_NetShareInfo501;
425
426         typedef struct {
427                 uint32 count;
428                 [size_is(count)] srvsvc_NetShareInfo501 *array;
429         } srvsvc_NetShareCtr501;
430
431         typedef struct {
432                 unistr *name;
433                 uint32 type;
434                 unistr *comment;
435                 uint32 permissions;
436                 int32 max_users;
437                 uint32 current_users;
438                 unistr *path;
439                 unistr *password;
440                 uint32 unknown;
441                 [subcontext(4)] security_descriptor *sd;
442         } srvsvc_NetShareInfo502;
443
444         typedef struct {
445                 uint32 count;
446                 [size_is(count)] srvsvc_NetShareInfo502 *array;
447         } srvsvc_NetShareCtr502;
448
449         typedef struct {
450                 unistr *comment;
451         } srvsvc_NetShareInfo1004;
452
453         typedef struct {
454                 uint32 dfs_flags;
455         } srvsvc_NetShareInfo1005;
456
457         typedef struct {
458                 int32 max_users;
459         } srvsvc_NetShareInfo1006;
460
461         typedef struct {
462                 uint32 reserved;
463                 [subcontext(4)] security_descriptor *sd;
464         } srvsvc_NetShareInfo1501;
465
466         typedef union {
467                 [case(0)] srvsvc_NetShareInfo0 *info0;
468                 [case(1)] srvsvc_NetShareInfo1 *info1;
469                 [case(2)] srvsvc_NetShareInfo2 *info2;
470                 [case(501)] srvsvc_NetShareInfo501 *info501;
471                 [case(502)] srvsvc_NetShareInfo502 *info502;
472                 [case(1004)] srvsvc_NetShareInfo1004 *info1004;
473                 [case(1005)] srvsvc_NetShareInfo1005 *info1005;
474                 [case(1006)] srvsvc_NetShareInfo1006 *info1006;
475                 [case(1501)] srvsvc_NetShareInfo1501 *info1501;
476                 [default] ;
477         } srvsvc_NetShareInfo;
478
479         typedef union {
480                 [case(0)] srvsvc_NetShareCtr0 *ctr0;
481                 [case(1)] srvsvc_NetShareCtr1 *ctr1;
482                 [case(2)] srvsvc_NetShareCtr2 *ctr2;
483                 [case(501)] srvsvc_NetShareCtr501 *ctr501;
484                 [case(502)] srvsvc_NetShareCtr502 *ctr502;
485                 [default] ;
486         } srvsvc_NetShareCtr;
487
488         /******************/
489         /* Function: 0x0e */
490         WERROR srvsvc_NetShareAdd(
491                 [in]   unistr *server_unc,
492                 [in]   uint32 level,
493                 [in,switch_is(level)] srvsvc_NetShareInfo info,
494                 [in,out]   uint32 *parm_error
495                 );
496
497         /******************/
498         /* Function: 0x0f */
499         WERROR srvsvc_NetShareEnumAll (
500                 [in]   unistr *server_unc,
501                 [in,out]   uint32 level,
502                 [in,out,switch_is(level)] srvsvc_NetShareCtr ctr,
503                 [in]   uint32 max_buffer,
504                 [out]  uint32 totalentries,
505                 [in,out]   uint32 *resume_handle
506                 );
507
508         /******************/
509         /* Function: 0x10 */
510         WERROR srvsvc_NetShareGetInfo(
511                 [in]   unistr *server_unc,
512                 [in]   unistr share_name,
513                 [in]   uint32 level,
514                 [out,switch_is(level)] srvsvc_NetShareInfo info
515                 );
516
517         /******************/
518         /* Function: 0x11 */
519         WERROR srvsvc_NetShareSetInfo(
520                 [in]   unistr *server_unc,
521                 [in]   unistr share_name,
522                 [in]   uint32 level,
523                 [in,switch_is(level)] srvsvc_NetShareInfo info,
524                 [in,out]   uint32 *parm_error
525                 );
526
527         /******************/
528         /* Function: 0x12 */
529         WERROR srvsvc_NetShareDel(
530                 [in]   unistr *server_unc,
531                 [in]   unistr share_name,
532                 [in]   uint32 reserved
533                 );
534
535         /******************/
536         /* Function: 0x13 */
537         WERROR srvsvc_NetShareDelSticky(
538                 [in]   unistr *server_unc,
539                 [in]   unistr share_name,
540                 [in]   uint32 reserved
541                 );
542         
543         /******************/
544         /* Function: 0x14 */
545         WERROR srvsvc_NetShareCheck(
546                 [in]   unistr *server_unc,
547                 [in]   unistr device_name,
548                 [out]   uint32 type
549                 );
550
551 /**************************/
552 /* srvsvc_NetSrv          */
553 /**************************/
554         typedef struct {
555                 uint32 platform_id;
556                 unistr *server_name;
557         } srvsvc_NetSrvInfo100;
558
559         typedef struct {
560                 uint32 platform_id;
561                 unistr *server_name;
562                 uint32 version_major;
563                 uint32 version_minor;
564                 uint32 server_type;
565                 unistr *comment;
566         } srvsvc_NetSrvInfo101;
567
568         typedef struct {
569                 uint32 platform_id;
570                 unistr *server_name;
571                 uint32 ver_major;
572                 uint32 ver_minor;
573                 uint32 server_type;
574                 unistr *comment;
575                 uint32 users;
576                 uint32 disc;
577                 uint32 hidden;
578                 uint32 announce;
579                 uint32 anndelta;
580                 uint32 licences;
581                 unistr *userpath;
582         } srvsvc_NetSrvInfo102;
583
584         typedef struct {
585                 uint32 ulist_mtime;
586                 uint32 glist_mtime;
587                 uint32 alist_mtime;
588                 unistr *alerts;
589                 uint32 security;
590                 uint32 numadmin;
591                 uint32 lanmask;
592                 unistr *guestaccount;
593                 uint32 chdevs;
594                 uint32 chdevqs;
595                 uint32 chdevjobs;
596                 uint32 connections;
597                 uint32 shares;
598                 uint32 openfiles;
599                 uint32 sessopen;
600                 uint32 sesssvc;
601                 uint32 sessreqs;
602                 uint32 opensearch;
603                 uint32 activelocks;
604                 uint32 sizereqbufs;
605                 uint32 numbigbufs;
606                 uint32 numfiletasks;
607                 uint32 alertsched;
608                 uint32 eroralert;
609                 uint32 logonalert;
610                 uint32 accessalert;
611                 uint32 diskalert;
612                 uint32 netioalert;
613                 uint32 maxaudits;
614                 unistr *srvheuristics;
615         } srvsvc_NetSrvInfo402;
616
617         typedef struct {
618                 uint32 ulist_mtime;
619                 uint32 glist_mtime;
620                 uint32 alist_mtime;
621                 unistr *alerts;
622                 uint32 security;
623                 uint32 numadmin;
624                 uint32 lanmask;
625                 unistr *guestaccount;
626                 uint32 chdevs;
627                 uint32 chdevqs;
628                 uint32 chdevjobs;
629                 uint32 connections;
630                 uint32 shares;
631                 uint32 openfiles;
632                 uint32 sessopen;
633                 uint32 sesssvc;
634                 uint32 sessreqs;
635                 uint32 opensearch;
636                 uint32 activelocks;
637                 uint32 sizereqbufs;
638                 uint32 numbigbufs;
639                 uint32 numfiletasks;
640                 uint32 alertsched;
641                 uint32 eroralert;
642                 uint32 logonalert;
643                 uint32 accessalert;
644                 uint32 diskalert;
645                 uint32 netioalert;
646                 uint32 maxaudits;
647                 unistr *srvheuristics;
648                 uint32 auditedevents;
649                 uint32 auditprofile;
650                 unistr *autopath;
651         } srvsvc_NetSrvInfo403;
652
653         typedef struct {
654                 uint32 sessopen;
655                 uint32 sesssvc;
656                 uint32 opensearch;
657                 uint32 sizereqbufs;
658                 uint32 initworkitems;
659                 uint32 maxworkitems;
660                 uint32 rawworkitems;
661                 uint32 irpstacksize;
662                 uint32 maxrawbuflen;
663                 uint32 sessusers;
664                 uint32 sessconns;
665                 uint32 maxpagedmemoryusage;
666                 uint32 maxnonpagedmemoryusage;
667                 uint32 enablesoftcompat;
668                 uint32 enableforcedlogoff;
669                 uint32 timesource;
670                 uint32 acceptdownlevelapis;
671                 uint32 lmannounce;
672         } srvsvc_NetSrvInfo502;
673
674         typedef struct{
675                 uint32 sessopen;
676                 uint32 sesssvc;
677                 uint32 opensearch;
678                 uint32 sizereqbufs;
679                 uint32 initworkitems;
680                 uint32 maxworkitems;
681                 uint32 rawworkitems;
682                 uint32 irpstacksize;
683                 uint32 maxrawbuflen;
684                 uint32 sessusers;
685                 uint32 sessconns;
686                 uint32 maxpagedmemoryusage;
687                 uint32 maxnonpagedmemoryusage;
688                 uint32 enablesoftcompat;
689                 uint32 enableforcedlogoff;
690                 uint32 timesource;
691                 uint32 acceptdownlevelapis;
692                 uint32 lmannounce;
693                 unistr *domain;
694                 uint32 maxcopyreadlen;
695                 uint32 maxcopywritelen;
696                 uint32 minkeepsearch;
697                 uint32 maxkeepsearch;
698                 uint32 minkeepcomplsearch;
699                 uint32 maxkeepcomplsearch;
700                 uint32 threadcountadd;
701                 uint32 numlockthreads;
702                 uint32 scavtimeout;
703                 uint32 minrcvqueue;
704                 uint32 minfreeworkitems;
705                 uint32 xactmemsize;
706                 uint32 threadpriority;
707                 uint32 maxmpxct;
708                 uint32 oplockbreakwait;
709                 uint32 oplockbreakresponsewait;
710                 uint32 enableoplocks;
711                 uint32 enableoplockforceclose;
712                 uint32 enablefcbopens;
713                 uint32 enableraw;
714                 uint32 enablesharednetdrives;
715                 uint32 minfreeconnections;
716                 uint32 maxfreeconnections;
717         } srvsvc_NetSrvInfo503;
718
719         typedef struct{
720                 uint32 dummy;
721         } srvsvc_NetSrvInfo599;
722
723         typedef struct{
724                 uint32 dummy;
725         } srvsvc_NetSrvInfo1005;
726
727         typedef struct{
728                 uint32 dummy;
729         } srvsvc_NetSrvInfo1010;
730
731         typedef struct{
732                 uint32 dummy;
733         } srvsvc_NetSrvInfo1016;
734
735         typedef struct{
736                 uint32 dummy;
737         } srvsvc_NetSrvInfo1017;
738
739         typedef struct{
740                 uint32 dummy;
741         } srvsvc_NetSrvInfo1018;
742
743         typedef struct{
744                 uint32 dummy;
745         } srvsvc_NetSrvInfo1107;
746
747         typedef struct{
748                 uint32 dummy;
749         } srvsvc_NetSrvInfo1501;
750
751         typedef struct{
752                 uint32 dummy;
753         } srvsvc_NetSrvInfo1502;
754
755         typedef struct{
756                 uint32 dummy;
757         } srvsvc_NetSrvInfo1503;
758
759         typedef struct{
760                 uint32 dummy;
761         } srvsvc_NetSrvInfo1506;
762
763         typedef struct{
764                 uint32 dummy;
765         } srvsvc_NetSrvInfo1509;
766
767         typedef struct{
768                 uint32 dummy;
769         } srvsvc_NetSrvInfo1510;
770
771         typedef struct{
772                 uint32 dummy;
773         } srvsvc_NetSrvInfo1511;
774
775         typedef struct{
776                 uint32 dummy;
777         } srvsvc_NetSrvInfo1512;
778
779         typedef struct{
780                 uint32 dummy;
781         } srvsvc_NetSrvInfo1513;
782
783         typedef struct{
784                 uint32 dummy;
785         } srvsvc_NetSrvInfo1514;
786
787         typedef struct{
788                 uint32 dummy;
789         } srvsvc_NetSrvInfo1515;
790
791         typedef struct{
792                 uint32 dummy;
793         } srvsvc_NetSrvInfo1516;
794
795         typedef struct{
796                 uint32 dummy;
797         } srvsvc_NetSrvInfo1518;
798
799         typedef struct{
800                 uint32 dummy;
801         } srvsvc_NetSrvInfo1520;
802
803         typedef struct{
804                 uint32 dummy;
805         } srvsvc_NetSrvInfo1521;
806
807         typedef struct{
808                 uint32 dummy;
809         } srvsvc_NetSrvInfo1522;
810
811         typedef struct{
812                 uint32 dummy;
813         } srvsvc_NetSrvInfo1523;
814
815         typedef struct{
816                 uint32 dummy;
817         } srvsvc_NetSrvInfo1524;
818
819         typedef struct{
820                 uint32 dummy;
821         } srvsvc_NetSrvInfo1525;
822
823         typedef struct{
824                 uint32 dummy;
825         } srvsvc_NetSrvInfo1528;
826
827         typedef struct{
828                 uint32 dummy;
829         } srvsvc_NetSrvInfo1529;
830
831         typedef struct{
832                 uint32 dummy;
833         } srvsvc_NetSrvInfo1530;
834
835         typedef struct{
836                 uint32 dummy;
837         } srvsvc_NetSrvInfo1533;
838
839         typedef struct{
840                 uint32 dummy;
841         } srvsvc_NetSrvInfo1534;
842
843         typedef struct{
844                 uint32 dummy;
845         } srvsvc_NetSrvInfo1535;
846
847         typedef struct{
848                 uint32 dummy;
849         } srvsvc_NetSrvInfo1536;
850
851         typedef struct{
852                 uint32 dummy;
853         } srvsvc_NetSrvInfo1537;
854
855         typedef struct{
856                 uint32 dummy;
857         } srvsvc_NetSrvInfo1538;
858
859         typedef struct{
860                 uint32 dummy;
861         } srvsvc_NetSrvInfo1539;
862
863         typedef struct{
864                 uint32 dummy;
865         } srvsvc_NetSrvInfo1540;
866
867         typedef struct{
868                 uint32 dummy;
869         } srvsvc_NetSrvInfo1541;
870
871         typedef struct{
872                 uint32 dummy;
873         } srvsvc_NetSrvInfo1542;
874
875         typedef struct{
876                 uint32 dummy;
877         } srvsvc_NetSrvInfo1543;
878
879         typedef struct{
880                 uint32 dummy;
881         } srvsvc_NetSrvInfo1544;
882
883         typedef struct{
884                 uint32 dummy;
885         } srvsvc_NetSrvInfo1545;
886
887         typedef struct{
888                 uint32 dummy;
889         } srvsvc_NetSrvInfo1546;
890
891         typedef struct{
892                 uint32 dummy;
893         } srvsvc_NetSrvInfo1547;
894
895         typedef struct{
896                 uint32 dummy;
897         } srvsvc_NetSrvInfo1548;
898
899         typedef struct{
900                 uint32 dummy;
901         } srvsvc_NetSrvInfo1549;
902
903         typedef struct{
904                 uint32 dummy;
905         } srvsvc_NetSrvInfo1550;
906
907         typedef struct{
908                 uint32 dummy;
909         } srvsvc_NetSrvInfo1552;
910
911         typedef struct{
912                 uint32 dummy;
913         } srvsvc_NetSrvInfo1553;
914
915         typedef struct{
916                 uint32 dummy;
917         } srvsvc_NetSrvInfo1554;
918
919         typedef struct{
920                 uint32 dummy;
921         } srvsvc_NetSrvInfo1555;
922
923         typedef struct{
924                 uint32 dummy;
925         } srvsvc_NetSrvInfo1556;
926
927
928         typedef union{
929                 [case(100)]     srvsvc_NetSrvInfo100 *info100;
930                 [case(101)]     srvsvc_NetSrvInfo101 *info101;
931                 [case(102)]     srvsvc_NetSrvInfo102 *info102;
932                 [case(402)]     srvsvc_NetSrvInfo402 *info402;
933                 [case(403)]     srvsvc_NetSrvInfo403 *info403;
934                 [case(502)]     srvsvc_NetSrvInfo502 *info502;
935                 [case(503)]     srvsvc_NetSrvInfo503 *info503;
936                 [case(599)]     srvsvc_NetSrvInfo599 *info599;
937                 [case(1005)]    srvsvc_NetSrvInfo1005 *info1005;
938                 [case(1010)]    srvsvc_NetSrvInfo1010 *info1010;
939                 [case(1016)]    srvsvc_NetSrvInfo1016 *info1016;
940                 [case(1017)]    srvsvc_NetSrvInfo1017 *info1017;
941                 [case(1018)]    srvsvc_NetSrvInfo1018 *info1018;
942                 [case(1107)]    srvsvc_NetSrvInfo1107 *info1107;
943                 [case(1501)]    srvsvc_NetSrvInfo1501 *info1501;
944                 [case(1502)]    srvsvc_NetSrvInfo1502 *info1502;
945                 [case(1503)]    srvsvc_NetSrvInfo1503 *info1503;
946                 [case(1506)]    srvsvc_NetSrvInfo1506 *info1506;
947                 [case(1509)]    srvsvc_NetSrvInfo1509 *info1509;
948                 [case(1510)]    srvsvc_NetSrvInfo1510 *info1510;
949                 [case(1511)]    srvsvc_NetSrvInfo1511 *info1511;
950                 [case(1512)]    srvsvc_NetSrvInfo1512 *info1512;
951                 [case(1513)]    srvsvc_NetSrvInfo1513 *info1513;
952                 [case(1514)]    srvsvc_NetSrvInfo1514 *info1514;
953                 [case(1515)]    srvsvc_NetSrvInfo1515 *info1515;
954                 [case(1516)]    srvsvc_NetSrvInfo1516 *info1516;
955                 [case(1518)]    srvsvc_NetSrvInfo1518 *info1518;
956                 [case(1520)]    srvsvc_NetSrvInfo1520 *info1520;
957                 [case(1521)]    srvsvc_NetSrvInfo1521 *info1521;
958                 [case(1522)]    srvsvc_NetSrvInfo1522 *info1522;
959                 [case(1523)]    srvsvc_NetSrvInfo1523 *info1523;
960                 [case(1524)]    srvsvc_NetSrvInfo1524 *info1524;
961                 [case(1525)]    srvsvc_NetSrvInfo1525 *info1525;
962                 [case(1528)]    srvsvc_NetSrvInfo1528 *info1528;
963                 [case(1529)]    srvsvc_NetSrvInfo1529 *info1529;
964                 [case(1530)]    srvsvc_NetSrvInfo1530 *info1530;
965                 [case(1533)]    srvsvc_NetSrvInfo1533 *info1533;
966                 [case(1534)]    srvsvc_NetSrvInfo1534 *info1534;
967                 [case(1535)]    srvsvc_NetSrvInfo1535 *info1535;
968                 [case(1536)]    srvsvc_NetSrvInfo1536 *info1536;
969                 [case(1537)]    srvsvc_NetSrvInfo1537 *info1537;
970                 [case(1538)]    srvsvc_NetSrvInfo1538 *info1538;
971                 [case(1539)]    srvsvc_NetSrvInfo1539 *info1539;
972                 [case(1540)]    srvsvc_NetSrvInfo1540 *info1540;
973                 [case(1541)]    srvsvc_NetSrvInfo1541 *info1541;
974                 [case(1542)]    srvsvc_NetSrvInfo1542 *info1542;
975                 [case(1543)]    srvsvc_NetSrvInfo1543 *info1543;
976                 [case(1544)]    srvsvc_NetSrvInfo1544 *info1544;
977                 [case(1545)]    srvsvc_NetSrvInfo1545 *info1545;
978                 [case(1546)]    srvsvc_NetSrvInfo1546 *info1546;
979                 [case(1547)]    srvsvc_NetSrvInfo1547 *info1547;
980                 [case(1548)]    srvsvc_NetSrvInfo1548 *info1548;
981                 [case(1549)]    srvsvc_NetSrvInfo1549 *info1549;
982                 [case(1550)]    srvsvc_NetSrvInfo1550 *info1550;
983                 [case(1552)]    srvsvc_NetSrvInfo1552 *info1552;
984                 [case(1553)]    srvsvc_NetSrvInfo1553 *info1553;
985                 [case(1554)]    srvsvc_NetSrvInfo1554 *info1554;
986                 [case(1555)]    srvsvc_NetSrvInfo1555 *info1555;
987                 [case(1556)]    srvsvc_NetSrvInfo1556 *info1556;
988                 [default];
989         } srvsvc_NetSrvInfo;
990
991         /******************/
992         /* Function: 0x15 */
993         WERROR srvsvc_NetSrvGetInfo(
994                 [in]   unistr *server_unc,
995                 [in]   uint32 level,
996                 [out,switch_is(level)] srvsvc_NetSrvInfo info
997                 );
998
999         /******************/
1000         /* Function: 0x16 */
1001         WERROR srvsvc_NetSrvSetInfo(
1002                 [in]   unistr *server_unc,
1003                 [in]   uint32 level,
1004                 [in,switch_is(level)] srvsvc_NetSrvInfo info,
1005                 [in,out]   uint32 *parm_error
1006                 );
1007
1008 /**************************/
1009 /* srvsvc_NetDisk         */
1010 /**************************/
1011         typedef struct {
1012                 uint32 unknown;
1013                 lstring disk;
1014                 uint16 unknown2;
1015         } srvsvc_NetDiskInfo0;
1016
1017         typedef struct {
1018                 uint32 unknown;
1019                 uint32 count;
1020                 [size_is(count)] srvsvc_NetDiskInfo0 array[];
1021         } srvsvc_NetDiskCtr0;
1022
1023         typedef union {
1024                 [case(0)]  srvsvc_NetDiskCtr0 *ctr0;
1025         } srvsvc_NetDiskCtr;
1026
1027         /******************/
1028         /* Function: 0x17 */
1029         WERROR srvsvc_NetDiskEnum(
1030                 [in]      unistr *server_unc,
1031                 [in]      uint32 level,
1032                 [out]     uint32 count,
1033                 [in,switch_is(level)] srvsvc_NetDiskCtr ctr,
1034                 [out]     srvsvc_NetDiskCtr0 *ctr0,
1035                 [in]      uint32 unknown,
1036                 [out]     uint32 totalentries,
1037                 [in,out]  uint32 *resume_handle
1038                 );
1039
1040 /**************************/
1041 /* srvsvc_NetStatistics   */
1042 /**************************/
1043         /******************/
1044         /* Function: 0x18 */
1045         WERROR srvsvc_NETRSERVERSTATISTICSGET(
1046                 );
1047
1048 /**************************/
1049 /* srvsvc_NetTransport    */
1050 /**************************/
1051         typedef struct {
1052                 uint32 count;
1053                 uint8 addr[count];
1054         } srvsvc_NetTransportAddress;
1055
1056         typedef struct {
1057                 uint32 vcs;
1058                 unistr *name;
1059                 srvsvc_NetTransportAddress *addr;
1060                 uint32 addr_len;
1061                 unistr *net_addr;
1062         } srvsvc_NetTransportInfo0;
1063
1064         typedef struct {
1065                 uint32 count;
1066                 [size_is(count)] srvsvc_NetTransportInfo0 *array;
1067         } srvsvc_NetTransportCtr0;
1068
1069         typedef struct {
1070                 uint32 vcs;
1071                 unistr *name;
1072                 srvsvc_NetTransportAddress *addr;
1073                 uint32 addr_len;
1074                 unistr *net_addr;
1075                 unistr *domain;
1076         } srvsvc_NetTransportInfo1;
1077
1078         typedef struct {
1079                 uint32 count;
1080                 [size_is(count)] srvsvc_NetTransportInfo1 *array;
1081         } srvsvc_NetTransportCtr1;
1082
1083         typedef struct {
1084                 uint32 dummy;
1085         } srvsvc_NetTransportInfo2;
1086
1087         typedef struct {
1088                 uint32 count;
1089                 [size_is(count)] srvsvc_NetTransportInfo2 *array;
1090         } srvsvc_NetTransportCtr2;
1091
1092         typedef struct {
1093                 uint32 dummy;
1094         } srvsvc_NetTransportInfo3;
1095
1096         typedef struct {
1097                 uint32 count;
1098                 [size_is(count)] srvsvc_NetTransportInfo3 *array;
1099         } srvsvc_NetTransportCtr3;
1100
1101         typedef union {
1102                 [case(0)] srvsvc_NetTransportInfo0 *info0;
1103                 [case(1)] srvsvc_NetTransportInfo1 *info1;
1104                 [case(2)] srvsvc_NetTransportInfo2 *info2;
1105                 [case(3)] srvsvc_NetTransportInfo3 *info3;
1106                 [default];
1107         } srvsvc_NetTransportInfo;
1108
1109         typedef union {
1110                 [case(0)] srvsvc_NetTransportCtr0 *ctr0;
1111                 [case(1)] srvsvc_NetTransportCtr1 *ctr1;
1112                 [case(2)] srvsvc_NetTransportCtr2 *ctr2;
1113                 [case(3)] srvsvc_NetTransportCtr3 *ctr3;
1114                 [default];
1115         } srvsvc_NetTransportCtr;
1116
1117         /******************/
1118         /* Function: 0x19 */
1119         WERROR srvsvc_NETRSERVERTRANSPORTADD(
1120                 );
1121
1122         /******************/
1123         /* Function: 0x1a */
1124         WERROR srvsvc_NetTransportEnum(
1125                 [in]   unistr *server_unc,
1126                 [in,out] uint32 level,
1127                 [in,out,switch_is(level)]   srvsvc_NetTransportCtr ctr,
1128                 [in]   uint32 max_buffer,
1129                 [out]   uint32 totalentries,
1130                 [in,out]   uint32 *resume_handle
1131                 );
1132
1133         /******************/
1134         /* Function: 0x1b */
1135         WERROR srvsvc_NETRSERVERTRANSPORTDEL(
1136                 );
1137
1138 /**************************/
1139 /* srvsvc_NetRemoteTOD    */
1140 /**************************/
1141         typedef struct {
1142                 uint32 elapsed; /* time(NULL) */
1143                 uint32 msecs; /* milliseconds till system reboot (uptime) */
1144                 uint32 hours;
1145                 uint32 mins;
1146                 uint32 secs;
1147                 uint32 hunds;
1148                 int32 timezone; /* in minutes */
1149                 uint32 tinterval; /* clock tick interval in 0.0001 second units; 310 on windows */
1150                 uint32 day;
1151                 uint32 month;
1152                 uint32 year;
1153                 uint32 weekday;
1154         } srvsvc_NetRemoteTODInfo;
1155
1156         /******************/
1157         /* Function: 0x1c */
1158         WERROR srvsvc_NetRemoteTOD(
1159                 [in]   unistr *server_unc,
1160                 [out]   srvsvc_NetRemoteTODInfo *info
1161                 );
1162
1163 /**************************/
1164 /* srvsvc_NetServiceBits  */
1165 /**************************/
1166         /******************/
1167         /* Function: 0x1d */
1168         WERROR srvsvc_NETRSERVERSETSERVICEBITS(
1169                 );
1170
1171 /**************************/
1172 /* srvsvc_NetPath         */
1173 /**************************/
1174         /******************/
1175         /* Function: 0x1e */
1176         WERROR srvsvc_NETRPRPATHTYPE(
1177                 );
1178
1179         /******************/
1180         /* Function: 0x1f */
1181         WERROR srvsvc_NETRPRPATHCANONICALIZE(
1182                 );
1183
1184         /******************/
1185         /* Function: 0x20 */
1186         WERROR srvsvc_NETRPRPATHCOMPARE(
1187                 );
1188
1189 /**************************/
1190 /* srvsvc_NetName         */
1191 /**************************/
1192         /******************/
1193         /* Function: 0x21 */
1194         WERROR srvsvc_NET_NAME_VALIDATE(
1195                 );
1196
1197         /******************/
1198         /* Function: 0x22 */
1199         WERROR srvsvc_NETRPRNAMECANONICALIZE(
1200                 );
1201
1202         /******************/
1203         /* Function: 0x23 */
1204         WERROR srvsvc_NETRPRNAMECOMPARE(
1205                 );
1206
1207 /**************************/
1208 /* srvsvc_NetShare ...    */
1209 /**************************/
1210         /******************/
1211         /* Function: 0x24 */
1212         /* Note, there must be some way to return entries read vs 
1213            total entries ... */
1214         WERROR srvsvc_NetShareEnum(
1215                 [in]       unistr *server_unc,
1216                 [in,out]   uint32 level,
1217                 [in,out,switch_is(level)]   srvsvc_NetShareCtr ctr,
1218                 [in]       uint32 max_buffer,
1219                 [out]      uint32 totalentries,
1220                 [in,out]   uint32 *resume_handle
1221                 );
1222
1223         /******************/
1224         /* Function: 0x25 */
1225         WERROR srvsvc_NETRSHAREDELSTART(
1226                 );
1227
1228         /******************/
1229         /* Function: 0x26 */
1230         WERROR srvsvc_NETRSHAREDELCOMMIT(
1231                 );
1232
1233         /******************/
1234         /* Function: 0x27 */
1235         WERROR srvsvc_NET_FILE_QUERY_SECDESC(
1236                 );
1237
1238         /******************/
1239         /* Function: 0x28 */
1240         WERROR srvsvc_NET_FILE_SET_SECDESC(
1241                 );
1242
1243         /******************/
1244         /* Function: 0x29 */
1245         WERROR srvsvc_NETRSERVERTRANSPORTADDEX(
1246                 );
1247
1248         /******************/
1249         /* Function: 0x2a */
1250         WERROR srvsvc_NETRSERVERSETSERVICEBITSEX(
1251                 );
1252
1253         /******************/
1254         /* Function: 0x2b */
1255         WERROR srvsvc_NETRDFSGETVERSION(
1256                 );
1257
1258         /******************/
1259         /* Function: 0x2c */
1260         WERROR srvsvc_NETRDFSCREATELOCALPARTITION(
1261                 );
1262
1263         /******************/
1264         /* Function: 0x2d */
1265         WERROR srvsvc_NETRDFSDELETELOCALPARTITION(
1266                 );
1267
1268         /******************/
1269         /* Function: 0x2e */
1270         WERROR srvsvc_NETRDFSSETLOCALVOLUMESTATE(
1271                 );
1272
1273         /******************/
1274         /* Function: 0x2f */
1275         WERROR srvsvc_NETRDFSSETSERVERINFO(
1276                 );
1277
1278         /******************/
1279         /* Function: 0x30 */
1280         WERROR srvsvc_NETRDFSCREATEEXITPOINT(
1281                 );
1282
1283         /******************/
1284         /* Function: 0x31 */
1285         WERROR srvsvc_NETRDFSDELETEEXITPOINT(
1286                 );
1287
1288         /******************/
1289         /* Function: 0x32 */
1290         WERROR srvsvc_NETRDFSMODIFYPREFIX(
1291                 );
1292
1293         /******************/
1294         /* Function: 0x33 */
1295         WERROR srvsvc_NETRDFSFIXLOCALVOLUME(
1296                 );
1297
1298         /******************/
1299         /* Function: 0x34 */
1300         WERROR srvsvc_NETRDFSMANAGERREPORTSITEINFO(
1301                 );
1302
1303         /******************/
1304         /* Function: 0x35 */
1305         WERROR srvsvc_NETRSERVERTRANSPORTDELEX(
1306                 );
1307 }