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