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