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