aea5c686a206e654a0f8e78c1d8db82b60fac1fe
[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_TEMPORARY= 0x40000000; /* share is a temporary one */
382         const int STYPE_HIDDEN   = 0x80000000; /* share is a hidden one */
383
384         typedef struct {
385                 unistr *name;
386         } srvsvc_NetShareInfo0;
387
388         typedef struct {
389                 uint32 count;
390                 [size_is(count)] srvsvc_NetShareInfo0 *array;
391         } srvsvc_NetShareCtr0;
392
393         typedef struct {
394                 unistr *name;
395                 uint32 type;
396                 unistr *comment;
397         } srvsvc_NetShareInfo1;
398
399         typedef struct {
400                 uint32 count;
401                 [size_is(count)] srvsvc_NetShareInfo1 *array;
402         } srvsvc_NetShareCtr1;
403
404         typedef struct {
405                 unistr *name;
406                 uint32 type;
407                 unistr *comment;
408                 uint32 permissions;
409                 uint32 max_users;
410                 uint32 current_users;
411                 unistr *path;
412                 unistr *password;
413         } srvsvc_NetShareInfo2;
414
415         typedef struct {
416                 uint32 count;
417                 [size_is(count)] srvsvc_NetShareInfo2 *array;
418         } srvsvc_NetShareCtr2;
419
420         typedef struct {
421                 unistr *name;
422                 uint32 type;
423                 unistr *comment;
424                 uint32 csc_policy;
425         } srvsvc_NetShareInfo501;
426
427         typedef struct {
428                 uint32 count;
429                 [size_is(count)] srvsvc_NetShareInfo501 *array;
430         } srvsvc_NetShareCtr501;
431
432         typedef struct {
433                 unistr *name;
434                 uint32 type;
435                 unistr *comment;
436                 uint32 permissions;
437                 int32 max_users;
438                 uint32 current_users;
439                 unistr *path;
440                 unistr *password;
441                 uint32 unknown;
442                 [subcontext(4)] security_descriptor *sd;
443         } srvsvc_NetShareInfo502;
444
445         typedef struct {
446                 uint32 count;
447                 [size_is(count)] srvsvc_NetShareInfo502 *array;
448         } srvsvc_NetShareCtr502;
449
450         typedef struct {
451                 unistr *comment;
452         } srvsvc_NetShareInfo1004;
453
454         typedef struct {
455                 uint32 dfs_flags;
456         } srvsvc_NetShareInfo1005;
457
458         typedef struct {
459                 int32 max_users;
460         } srvsvc_NetShareInfo1006;
461
462         typedef struct {
463                 uint32 reserved;
464                 [subcontext(4)] security_descriptor *sd;
465         } srvsvc_NetShareInfo1501;
466
467         typedef union {
468                 [case(0)] srvsvc_NetShareInfo0 *info0;
469                 [case(1)] srvsvc_NetShareInfo1 *info1;
470                 [case(2)] srvsvc_NetShareInfo2 *info2;
471                 [case(501)] srvsvc_NetShareInfo501 *info501;
472                 [case(502)] srvsvc_NetShareInfo502 *info502;
473                 [case(1004)] srvsvc_NetShareInfo1004 *info1004;
474                 [case(1005)] srvsvc_NetShareInfo1005 *info1005;
475                 [case(1006)] srvsvc_NetShareInfo1006 *info1006;
476                 [case(1501)] srvsvc_NetShareInfo1501 *info1501;
477                 [default] ;
478         } srvsvc_NetShareInfo;
479
480         typedef union {
481                 [case(0)] srvsvc_NetShareCtr0 *ctr0;
482                 [case(1)] srvsvc_NetShareCtr1 *ctr1;
483                 [case(2)] srvsvc_NetShareCtr2 *ctr2;
484                 [case(501)] srvsvc_NetShareCtr501 *ctr501;
485                 [case(502)] srvsvc_NetShareCtr502 *ctr502;
486                 [default] ;
487         } srvsvc_NetShareCtr;
488
489         /******************/
490         /* Function: 0x0e */
491         WERROR srvsvc_NetShareAdd(
492                 [in]   unistr *server_unc,
493                 [in]   uint32 level,
494                 [in,switch_is(level)] srvsvc_NetShareInfo info,
495                 [in,out]   uint32 *parm_error
496                 );
497
498         /******************/
499         /* Function: 0x0f */
500         WERROR srvsvc_NetShareEnumAll (
501                 [in]   unistr *server_unc,
502                 [in,out]   uint32 level,
503                 [in,out,switch_is(level)] srvsvc_NetShareCtr ctr,
504                 [in]   uint32 max_buffer,
505                 [out]  uint32 totalentries,
506                 [in,out]   uint32 *resume_handle
507                 );
508
509         /******************/
510         /* Function: 0x10 */
511         WERROR srvsvc_NetShareGetInfo(
512                 [in]   unistr *server_unc,
513                 [in]   unistr share_name,
514                 [in]   uint32 level,
515                 [out,switch_is(level)] srvsvc_NetShareInfo info
516                 );
517
518         /******************/
519         /* Function: 0x11 */
520         WERROR srvsvc_NetShareSetInfo(
521                 [in]   unistr *server_unc,
522                 [in]   unistr share_name,
523                 [in]   uint32 level,
524                 [in,switch_is(level)] srvsvc_NetShareInfo info,
525                 [in,out]   uint32 *parm_error
526                 );
527
528         /******************/
529         /* Function: 0x12 */
530         WERROR srvsvc_NetShareDel(
531                 [in]   unistr *server_unc,
532                 [in]   unistr share_name,
533                 [in]   uint32 reserved
534                 );
535
536         /******************/
537         /* Function: 0x13 */
538         WERROR srvsvc_NetShareDelSticky(
539                 [in]   unistr *server_unc,
540                 [in]   unistr share_name,
541                 [in]   uint32 reserved
542                 );
543         
544         /******************/
545         /* Function: 0x14 */
546         WERROR srvsvc_NetShareCheck(
547                 [in]   unistr *server_unc,
548                 [in]   unistr device_name,
549                 [out]   uint32 type
550                 );
551
552 /**************************/
553 /* srvsvc_NetSrv          */
554 /**************************/
555         typedef struct {
556                 uint32 platform_id;
557                 unistr *server_name;
558         } srvsvc_NetSrvInfo100;
559
560         typedef struct {
561                 uint32 platform_id;
562                 unistr *server_name;
563                 uint32 version_major;
564                 uint32 version_minor;
565                 uint32 server_type;
566                 unistr *comment;
567         } srvsvc_NetSrvInfo101;
568
569         typedef struct {
570                 uint32 platform_id;
571                 unistr *server_name;
572                 uint32 ver_major;
573                 uint32 ver_minor;
574                 uint32 server_type;
575                 unistr *comment;
576                 uint32 users;
577                 uint32 disc;
578                 uint32 hidden;
579                 uint32 announce;
580                 uint32 anndelta;
581                 uint32 licences;
582                 unistr *userpath;
583         } srvsvc_NetSrvInfo102;
584
585         typedef struct {
586                 uint32 ulist_mtime;
587                 uint32 glist_mtime;
588                 uint32 alist_mtime;
589                 unistr *alerts;
590                 uint32 security;
591                 uint32 numadmin;
592                 uint32 lanmask;
593                 unistr *guestaccount;
594                 uint32 chdevs;
595                 uint32 chdevqs;
596                 uint32 chdevjobs;
597                 uint32 connections;
598                 uint32 shares;
599                 uint32 openfiles;
600                 uint32 sessopen;
601                 uint32 sesssvc;
602                 uint32 sessreqs;
603                 uint32 opensearch;
604                 uint32 activelocks;
605                 uint32 sizereqbufs;
606                 uint32 numbigbufs;
607                 uint32 numfiletasks;
608                 uint32 alertsched;
609                 uint32 eroralert;
610                 uint32 logonalert;
611                 uint32 accessalert;
612                 uint32 diskalert;
613                 uint32 netioalert;
614                 uint32 maxaudits;
615                 unistr *srvheuristics;
616         } srvsvc_NetSrvInfo402;
617
618         typedef struct {
619                 uint32 ulist_mtime;
620                 uint32 glist_mtime;
621                 uint32 alist_mtime;
622                 unistr *alerts;
623                 uint32 security;
624                 uint32 numadmin;
625                 uint32 lanmask;
626                 unistr *guestaccount;
627                 uint32 chdevs;
628                 uint32 chdevqs;
629                 uint32 chdevjobs;
630                 uint32 connections;
631                 uint32 shares;
632                 uint32 openfiles;
633                 uint32 sessopen;
634                 uint32 sesssvc;
635                 uint32 sessreqs;
636                 uint32 opensearch;
637                 uint32 activelocks;
638                 uint32 sizereqbufs;
639                 uint32 numbigbufs;
640                 uint32 numfiletasks;
641                 uint32 alertsched;
642                 uint32 eroralert;
643                 uint32 logonalert;
644                 uint32 accessalert;
645                 uint32 diskalert;
646                 uint32 netioalert;
647                 uint32 maxaudits;
648                 unistr *srvheuristics;
649                 uint32 auditedevents;
650                 uint32 auditprofile;
651                 unistr *autopath;
652         } srvsvc_NetSrvInfo403;
653
654         typedef struct {
655                 uint32 sessopen;
656                 uint32 sesssvc;
657                 uint32 opensearch;
658                 uint32 sizereqbufs;
659                 uint32 initworkitems;
660                 uint32 maxworkitems;
661                 uint32 rawworkitems;
662                 uint32 irpstacksize;
663                 uint32 maxrawbuflen;
664                 uint32 sessusers;
665                 uint32 sessconns;
666                 uint32 maxpagedmemoryusage;
667                 uint32 maxnonpagedmemoryusage;
668                 uint32 enablesoftcompat;
669                 uint32 enableforcedlogoff;
670                 uint32 timesource;
671                 uint32 acceptdownlevelapis;
672                 uint32 lmannounce;
673         } srvsvc_NetSrvInfo502;
674
675         typedef struct{
676                 uint32 sessopen;
677                 uint32 sesssvc;
678                 uint32 opensearch;
679                 uint32 sizereqbufs;
680                 uint32 initworkitems;
681                 uint32 maxworkitems;
682                 uint32 rawworkitems;
683                 uint32 irpstacksize;
684                 uint32 maxrawbuflen;
685                 uint32 sessusers;
686                 uint32 sessconns;
687                 uint32 maxpagedmemoryusage;
688                 uint32 maxnonpagedmemoryusage;
689                 uint32 enablesoftcompat;
690                 uint32 enableforcedlogoff;
691                 uint32 timesource;
692                 uint32 acceptdownlevelapis;
693                 uint32 lmannounce;
694                 unistr *domain;
695                 uint32 maxcopyreadlen;
696                 uint32 maxcopywritelen;
697                 uint32 minkeepsearch;
698                 uint32 maxkeepsearch;
699                 uint32 minkeepcomplsearch;
700                 uint32 maxkeepcomplsearch;
701                 uint32 threadcountadd;
702                 uint32 numlockthreads;
703                 uint32 scavtimeout;
704                 uint32 minrcvqueue;
705                 uint32 minfreeworkitems;
706                 uint32 xactmemsize;
707                 uint32 threadpriority;
708                 uint32 maxmpxct;
709                 uint32 oplockbreakwait;
710                 uint32 oplockbreakresponsewait;
711                 uint32 enableoplocks;
712                 uint32 enableoplockforceclose;
713                 uint32 enablefcbopens;
714                 uint32 enableraw;
715                 uint32 enablesharednetdrives;
716                 uint32 minfreeconnections;
717                 uint32 maxfreeconnections;
718         } srvsvc_NetSrvInfo503;
719
720         typedef struct{
721                 uint32 dummy;
722         } srvsvc_NetSrvInfo599;
723
724         typedef struct{
725                 uint32 dummy;
726         } srvsvc_NetSrvInfo1005;
727
728         typedef struct{
729                 uint32 dummy;
730         } srvsvc_NetSrvInfo1010;
731
732         typedef struct{
733                 uint32 dummy;
734         } srvsvc_NetSrvInfo1016;
735
736         typedef struct{
737                 uint32 dummy;
738         } srvsvc_NetSrvInfo1017;
739
740         typedef struct{
741                 uint32 dummy;
742         } srvsvc_NetSrvInfo1018;
743
744         typedef struct{
745                 uint32 dummy;
746         } srvsvc_NetSrvInfo1107;
747
748         typedef struct{
749                 uint32 dummy;
750         } srvsvc_NetSrvInfo1501;
751
752         typedef struct{
753                 uint32 dummy;
754         } srvsvc_NetSrvInfo1502;
755
756         typedef struct{
757                 uint32 dummy;
758         } srvsvc_NetSrvInfo1503;
759
760         typedef struct{
761                 uint32 dummy;
762         } srvsvc_NetSrvInfo1506;
763
764         typedef struct{
765                 uint32 dummy;
766         } srvsvc_NetSrvInfo1509;
767
768         typedef struct{
769                 uint32 dummy;
770         } srvsvc_NetSrvInfo1510;
771
772         typedef struct{
773                 uint32 dummy;
774         } srvsvc_NetSrvInfo1511;
775
776         typedef struct{
777                 uint32 dummy;
778         } srvsvc_NetSrvInfo1512;
779
780         typedef struct{
781                 uint32 dummy;
782         } srvsvc_NetSrvInfo1513;
783
784         typedef struct{
785                 uint32 dummy;
786         } srvsvc_NetSrvInfo1514;
787
788         typedef struct{
789                 uint32 dummy;
790         } srvsvc_NetSrvInfo1515;
791
792         typedef struct{
793                 uint32 dummy;
794         } srvsvc_NetSrvInfo1516;
795
796         typedef struct{
797                 uint32 dummy;
798         } srvsvc_NetSrvInfo1518;
799
800         typedef struct{
801                 uint32 dummy;
802         } srvsvc_NetSrvInfo1520;
803
804         typedef struct{
805                 uint32 dummy;
806         } srvsvc_NetSrvInfo1521;
807
808         typedef struct{
809                 uint32 dummy;
810         } srvsvc_NetSrvInfo1522;
811
812         typedef struct{
813                 uint32 dummy;
814         } srvsvc_NetSrvInfo1523;
815
816         typedef struct{
817                 uint32 dummy;
818         } srvsvc_NetSrvInfo1524;
819
820         typedef struct{
821                 uint32 dummy;
822         } srvsvc_NetSrvInfo1525;
823
824         typedef struct{
825                 uint32 dummy;
826         } srvsvc_NetSrvInfo1528;
827
828         typedef struct{
829                 uint32 dummy;
830         } srvsvc_NetSrvInfo1529;
831
832         typedef struct{
833                 uint32 dummy;
834         } srvsvc_NetSrvInfo1530;
835
836         typedef struct{
837                 uint32 dummy;
838         } srvsvc_NetSrvInfo1533;
839
840         typedef struct{
841                 uint32 dummy;
842         } srvsvc_NetSrvInfo1534;
843
844         typedef struct{
845                 uint32 dummy;
846         } srvsvc_NetSrvInfo1535;
847
848         typedef struct{
849                 uint32 dummy;
850         } srvsvc_NetSrvInfo1536;
851
852         typedef struct{
853                 uint32 dummy;
854         } srvsvc_NetSrvInfo1537;
855
856         typedef struct{
857                 uint32 dummy;
858         } srvsvc_NetSrvInfo1538;
859
860         typedef struct{
861                 uint32 dummy;
862         } srvsvc_NetSrvInfo1539;
863
864         typedef struct{
865                 uint32 dummy;
866         } srvsvc_NetSrvInfo1540;
867
868         typedef struct{
869                 uint32 dummy;
870         } srvsvc_NetSrvInfo1541;
871
872         typedef struct{
873                 uint32 dummy;
874         } srvsvc_NetSrvInfo1542;
875
876         typedef struct{
877                 uint32 dummy;
878         } srvsvc_NetSrvInfo1543;
879
880         typedef struct{
881                 uint32 dummy;
882         } srvsvc_NetSrvInfo1544;
883
884         typedef struct{
885                 uint32 dummy;
886         } srvsvc_NetSrvInfo1545;
887
888         typedef struct{
889                 uint32 dummy;
890         } srvsvc_NetSrvInfo1546;
891
892         typedef struct{
893                 uint32 dummy;
894         } srvsvc_NetSrvInfo1547;
895
896         typedef struct{
897                 uint32 dummy;
898         } srvsvc_NetSrvInfo1548;
899
900         typedef struct{
901                 uint32 dummy;
902         } srvsvc_NetSrvInfo1549;
903
904         typedef struct{
905                 uint32 dummy;
906         } srvsvc_NetSrvInfo1550;
907
908         typedef struct{
909                 uint32 dummy;
910         } srvsvc_NetSrvInfo1552;
911
912         typedef struct{
913                 uint32 dummy;
914         } srvsvc_NetSrvInfo1553;
915
916         typedef struct{
917                 uint32 dummy;
918         } srvsvc_NetSrvInfo1554;
919
920         typedef struct{
921                 uint32 dummy;
922         } srvsvc_NetSrvInfo1555;
923
924         typedef struct{
925                 uint32 dummy;
926         } srvsvc_NetSrvInfo1556;
927
928
929         typedef union{
930                 [case(100)]     srvsvc_NetSrvInfo100 *info100;
931                 [case(101)]     srvsvc_NetSrvInfo101 *info101;
932                 [case(102)]     srvsvc_NetSrvInfo102 *info102;
933                 [case(402)]     srvsvc_NetSrvInfo402 *info402;
934                 [case(403)]     srvsvc_NetSrvInfo403 *info403;
935                 [case(502)]     srvsvc_NetSrvInfo502 *info502;
936                 [case(503)]     srvsvc_NetSrvInfo503 *info503;
937                 [case(599)]     srvsvc_NetSrvInfo599 *info599;
938                 [case(1005)]    srvsvc_NetSrvInfo1005 *info1005;
939                 [case(1010)]    srvsvc_NetSrvInfo1010 *info1010;
940                 [case(1016)]    srvsvc_NetSrvInfo1016 *info1016;
941                 [case(1017)]    srvsvc_NetSrvInfo1017 *info1017;
942                 [case(1018)]    srvsvc_NetSrvInfo1018 *info1018;
943                 [case(1107)]    srvsvc_NetSrvInfo1107 *info1107;
944                 [case(1501)]    srvsvc_NetSrvInfo1501 *info1501;
945                 [case(1502)]    srvsvc_NetSrvInfo1502 *info1502;
946                 [case(1503)]    srvsvc_NetSrvInfo1503 *info1503;
947                 [case(1506)]    srvsvc_NetSrvInfo1506 *info1506;
948                 [case(1509)]    srvsvc_NetSrvInfo1509 *info1509;
949                 [case(1510)]    srvsvc_NetSrvInfo1510 *info1510;
950                 [case(1511)]    srvsvc_NetSrvInfo1511 *info1511;
951                 [case(1512)]    srvsvc_NetSrvInfo1512 *info1512;
952                 [case(1513)]    srvsvc_NetSrvInfo1513 *info1513;
953                 [case(1514)]    srvsvc_NetSrvInfo1514 *info1514;
954                 [case(1515)]    srvsvc_NetSrvInfo1515 *info1515;
955                 [case(1516)]    srvsvc_NetSrvInfo1516 *info1516;
956                 [case(1518)]    srvsvc_NetSrvInfo1518 *info1518;
957                 [case(1520)]    srvsvc_NetSrvInfo1520 *info1520;
958                 [case(1521)]    srvsvc_NetSrvInfo1521 *info1521;
959                 [case(1522)]    srvsvc_NetSrvInfo1522 *info1522;
960                 [case(1523)]    srvsvc_NetSrvInfo1523 *info1523;
961                 [case(1524)]    srvsvc_NetSrvInfo1524 *info1524;
962                 [case(1525)]    srvsvc_NetSrvInfo1525 *info1525;
963                 [case(1528)]    srvsvc_NetSrvInfo1528 *info1528;
964                 [case(1529)]    srvsvc_NetSrvInfo1529 *info1529;
965                 [case(1530)]    srvsvc_NetSrvInfo1530 *info1530;
966                 [case(1533)]    srvsvc_NetSrvInfo1533 *info1533;
967                 [case(1534)]    srvsvc_NetSrvInfo1534 *info1534;
968                 [case(1535)]    srvsvc_NetSrvInfo1535 *info1535;
969                 [case(1536)]    srvsvc_NetSrvInfo1536 *info1536;
970                 [case(1537)]    srvsvc_NetSrvInfo1537 *info1537;
971                 [case(1538)]    srvsvc_NetSrvInfo1538 *info1538;
972                 [case(1539)]    srvsvc_NetSrvInfo1539 *info1539;
973                 [case(1540)]    srvsvc_NetSrvInfo1540 *info1540;
974                 [case(1541)]    srvsvc_NetSrvInfo1541 *info1541;
975                 [case(1542)]    srvsvc_NetSrvInfo1542 *info1542;
976                 [case(1543)]    srvsvc_NetSrvInfo1543 *info1543;
977                 [case(1544)]    srvsvc_NetSrvInfo1544 *info1544;
978                 [case(1545)]    srvsvc_NetSrvInfo1545 *info1545;
979                 [case(1546)]    srvsvc_NetSrvInfo1546 *info1546;
980                 [case(1547)]    srvsvc_NetSrvInfo1547 *info1547;
981                 [case(1548)]    srvsvc_NetSrvInfo1548 *info1548;
982                 [case(1549)]    srvsvc_NetSrvInfo1549 *info1549;
983                 [case(1550)]    srvsvc_NetSrvInfo1550 *info1550;
984                 [case(1552)]    srvsvc_NetSrvInfo1552 *info1552;
985                 [case(1553)]    srvsvc_NetSrvInfo1553 *info1553;
986                 [case(1554)]    srvsvc_NetSrvInfo1554 *info1554;
987                 [case(1555)]    srvsvc_NetSrvInfo1555 *info1555;
988                 [case(1556)]    srvsvc_NetSrvInfo1556 *info1556;
989                 [default];
990         } srvsvc_NetSrvInfo;
991
992         /******************/
993         /* Function: 0x15 */
994         WERROR srvsvc_NetSrvGetInfo(
995                 [in]   unistr *server_unc,
996                 [in]   uint32 level,
997                 [out,switch_is(level)] srvsvc_NetSrvInfo info
998                 );
999
1000         /******************/
1001         /* Function: 0x16 */
1002         WERROR srvsvc_NetSrvSetInfo(
1003                 [in]   unistr *server_unc,
1004                 [in]   uint32 level,
1005                 [in,switch_is(level)] srvsvc_NetSrvInfo info,
1006                 [in,out]   uint32 *parm_error
1007                 );
1008
1009 /**************************/
1010 /* srvsvc_NetDisk         */
1011 /**************************/
1012         typedef struct {
1013                 uint32 unknown;
1014                 lstring disk;
1015                 uint16 unknown2;
1016         } srvsvc_NetDiskInfo0;
1017
1018         typedef struct {
1019                 uint32 unknown;
1020                 uint32 count;
1021                 [size_is(count)] srvsvc_NetDiskInfo0 array[];
1022         } srvsvc_NetDiskCtr0;
1023
1024         typedef union {
1025                 [case(0)]  srvsvc_NetDiskCtr0 *ctr0;
1026         } srvsvc_NetDiskCtr;
1027
1028         /******************/
1029         /* Function: 0x17 */
1030         WERROR srvsvc_NetDiskEnum(
1031                 [in]      unistr *server_unc,
1032                 [in]      uint32 level,
1033                 [out]     uint32 count,
1034                 [in,switch_is(level)] srvsvc_NetDiskCtr ctr,
1035                 [out]     srvsvc_NetDiskCtr0 *ctr0,
1036                 [in]      uint32 unknown,
1037                 [out]     uint32 totalentries,
1038                 [in,out]  uint32 *resume_handle
1039                 );
1040
1041 /**************************/
1042 /* srvsvc_NetStatistics   */
1043 /**************************/
1044         /******************/
1045         /* Function: 0x18 */
1046         WERROR srvsvc_NETRSERVERSTATISTICSGET(
1047                 );
1048
1049 /**************************/
1050 /* srvsvc_NetTransport    */
1051 /**************************/
1052         typedef struct {
1053                 uint32 count;
1054                 uint8 addr[count];
1055         } srvsvc_NetTransportAddress;
1056
1057         typedef struct {
1058                 uint32 vcs;
1059                 unistr *name;
1060                 srvsvc_NetTransportAddress *addr;
1061                 uint32 addr_len;
1062                 unistr *net_addr;
1063         } srvsvc_NetTransportInfo0;
1064
1065         typedef struct {
1066                 uint32 count;
1067                 [size_is(count)] srvsvc_NetTransportInfo0 *array;
1068         } srvsvc_NetTransportCtr0;
1069
1070         typedef struct {
1071                 uint32 vcs;
1072                 unistr *name;
1073                 srvsvc_NetTransportAddress *addr;
1074                 uint32 addr_len;
1075                 unistr *net_addr;
1076                 unistr *domain;
1077         } srvsvc_NetTransportInfo1;
1078
1079         typedef struct {
1080                 uint32 count;
1081                 [size_is(count)] srvsvc_NetTransportInfo1 *array;
1082         } srvsvc_NetTransportCtr1;
1083
1084         typedef struct {
1085                 uint32 dummy;
1086         } srvsvc_NetTransportInfo2;
1087
1088         typedef struct {
1089                 uint32 count;
1090                 [size_is(count)] srvsvc_NetTransportInfo2 *array;
1091         } srvsvc_NetTransportCtr2;
1092
1093         typedef struct {
1094                 uint32 dummy;
1095         } srvsvc_NetTransportInfo3;
1096
1097         typedef struct {
1098                 uint32 count;
1099                 [size_is(count)] srvsvc_NetTransportInfo3 *array;
1100         } srvsvc_NetTransportCtr3;
1101
1102         typedef union {
1103                 [case(0)] srvsvc_NetTransportInfo0 *info0;
1104                 [case(1)] srvsvc_NetTransportInfo1 *info1;
1105                 [case(2)] srvsvc_NetTransportInfo2 *info2;
1106                 [case(3)] srvsvc_NetTransportInfo3 *info3;
1107                 [default];
1108         } srvsvc_NetTransportInfo;
1109
1110         typedef union {
1111                 [case(0)] srvsvc_NetTransportCtr0 *ctr0;
1112                 [case(1)] srvsvc_NetTransportCtr1 *ctr1;
1113                 [case(2)] srvsvc_NetTransportCtr2 *ctr2;
1114                 [case(3)] srvsvc_NetTransportCtr3 *ctr3;
1115                 [default];
1116         } srvsvc_NetTransportCtr;
1117
1118         /******************/
1119         /* Function: 0x19 */
1120         WERROR srvsvc_NETRSERVERTRANSPORTADD(
1121                 );
1122
1123         /******************/
1124         /* Function: 0x1a */
1125         WERROR srvsvc_NetTransportEnum(
1126                 [in]   unistr *server_unc,
1127                 [in,out] uint32 level,
1128                 [in,out,switch_is(level)]   srvsvc_NetTransportCtr ctr,
1129                 [in]   uint32 max_buffer,
1130                 [out]   uint32 totalentries,
1131                 [in,out]   uint32 *resume_handle
1132                 );
1133
1134         /******************/
1135         /* Function: 0x1b */
1136         WERROR srvsvc_NETRSERVERTRANSPORTDEL(
1137                 );
1138
1139 /**************************/
1140 /* srvsvc_NetRemoteTOD    */
1141 /**************************/
1142         typedef struct {
1143                 uint32 elapsed; /* time(NULL) */
1144                 uint32 msecs; /* milliseconds till system reboot (uptime) */
1145                 uint32 hours;
1146                 uint32 mins;
1147                 uint32 secs;
1148                 uint32 hunds;
1149                 int32 timezone; /* in minutes */
1150                 uint32 tinterval; /* clock tick interval in 0.0001 second units; 310 on windows */
1151                 uint32 day;
1152                 uint32 month;
1153                 uint32 year;
1154                 uint32 weekday;
1155         } srvsvc_NetRemoteTODInfo;
1156
1157         /******************/
1158         /* Function: 0x1c */
1159         WERROR srvsvc_NetRemoteTOD(
1160                 [in]   unistr *server_unc,
1161                 [out]   srvsvc_NetRemoteTODInfo *info
1162                 );
1163
1164 /**************************/
1165 /* srvsvc_NetServiceBits  */
1166 /**************************/
1167         /******************/
1168         /* Function: 0x1d */
1169         WERROR srvsvc_NETRSERVERSETSERVICEBITS(
1170                 );
1171
1172 /**************************/
1173 /* srvsvc_NetPath         */
1174 /**************************/
1175         /******************/
1176         /* Function: 0x1e */
1177         WERROR srvsvc_NETRPRPATHTYPE(
1178                 );
1179
1180         /******************/
1181         /* Function: 0x1f */
1182         WERROR srvsvc_NETRPRPATHCANONICALIZE(
1183                 );
1184
1185         /******************/
1186         /* Function: 0x20 */
1187         WERROR srvsvc_NETRPRPATHCOMPARE(
1188                 );
1189
1190 /**************************/
1191 /* srvsvc_NetName         */
1192 /**************************/
1193         /******************/
1194         /* Function: 0x21 */
1195         WERROR srvsvc_NET_NAME_VALIDATE(
1196                 );
1197
1198         /******************/
1199         /* Function: 0x22 */
1200         WERROR srvsvc_NETRPRNAMECANONICALIZE(
1201                 );
1202
1203         /******************/
1204         /* Function: 0x23 */
1205         WERROR srvsvc_NETRPRNAMECOMPARE(
1206                 );
1207
1208 /**************************/
1209 /* srvsvc_NetShare ...    */
1210 /**************************/
1211         /******************/
1212         /* Function: 0x24 */
1213         /* Note, there must be some way to return entries read vs 
1214            total entries ... */
1215         WERROR srvsvc_NetShareEnum(
1216                 [in]       unistr *server_unc,
1217                 [in,out]   uint32 level,
1218                 [in,out,switch_is(level)]   srvsvc_NetShareCtr ctr,
1219                 [in]       uint32 max_buffer,
1220                 [out]      uint32 totalentries,
1221                 [in,out]   uint32 *resume_handle
1222                 );
1223
1224         /******************/
1225         /* Function: 0x25 */
1226         WERROR srvsvc_NETRSHAREDELSTART(
1227                 );
1228
1229         /******************/
1230         /* Function: 0x26 */
1231         WERROR srvsvc_NETRSHAREDELCOMMIT(
1232                 );
1233
1234         /******************/
1235         /* Function: 0x27 */
1236         WERROR srvsvc_NET_FILE_QUERY_SECDESC(
1237                 );
1238
1239         /******************/
1240         /* Function: 0x28 */
1241         WERROR srvsvc_NET_FILE_SET_SECDESC(
1242                 );
1243
1244         /******************/
1245         /* Function: 0x29 */
1246         WERROR srvsvc_NETRSERVERTRANSPORTADDEX(
1247                 );
1248
1249         /******************/
1250         /* Function: 0x2a */
1251         WERROR srvsvc_NETRSERVERSETSERVICEBITSEX(
1252                 );
1253
1254         /******************/
1255         /* Function: 0x2b */
1256         WERROR srvsvc_NETRDFSGETVERSION(
1257                 );
1258
1259         /******************/
1260         /* Function: 0x2c */
1261         WERROR srvsvc_NETRDFSCREATELOCALPARTITION(
1262                 );
1263
1264         /******************/
1265         /* Function: 0x2d */
1266         WERROR srvsvc_NETRDFSDELETELOCALPARTITION(
1267                 );
1268
1269         /******************/
1270         /* Function: 0x2e */
1271         WERROR srvsvc_NETRDFSSETLOCALVOLUMESTATE(
1272                 );
1273
1274         /******************/
1275         /* Function: 0x2f */
1276         WERROR srvsvc_NETRDFSSETSERVERINFO(
1277                 );
1278
1279         /******************/
1280         /* Function: 0x30 */
1281         WERROR srvsvc_NETRDFSCREATEEXITPOINT(
1282                 );
1283
1284         /******************/
1285         /* Function: 0x31 */
1286         WERROR srvsvc_NETRDFSDELETEEXITPOINT(
1287                 );
1288
1289         /******************/
1290         /* Function: 0x32 */
1291         WERROR srvsvc_NETRDFSMODIFYPREFIX(
1292                 );
1293
1294         /******************/
1295         /* Function: 0x33 */
1296         WERROR srvsvc_NETRDFSFIXLOCALVOLUME(
1297                 );
1298
1299         /******************/
1300         /* Function: 0x34 */
1301         WERROR srvsvc_NETRDFSMANAGERREPORTSITEINFO(
1302                 );
1303
1304         /******************/
1305         /* Function: 0x35 */
1306         WERROR srvsvc_NETRSERVERTRANSPORTDELEX(
1307                 );
1308 }