935256af16cd75e3d1d3cb18c8a6f485fa25d96e
[mat/samba.git] / source3 / librpc / idl / libnetapi.idl
1 /*
2   libnetapi interface definition
3 */
4
5 cpp_quote("#define LIBNETAPI_LOCAL_SERVER(x) (!x || is_myname_or_ipaddr(x))")
6 cpp_quote("#ifndef MAXSUBAUTHS")
7 cpp_quote("#define MAXSUBAUTHS 15 /* max sub authorities in a SID */")
8 cpp_quote("#endif")
9
10 import "misc.idl";
11
12 [
13         pointer_default(unique)
14 ]
15 interface libnetapi
16 {
17         const int ERROR_MORE_DATA = 234L;
18
19         [public] typedef [v1_enum] enum {
20                 NERR_Success=0
21         } NET_API_STATUS;
22
23         [public] typedef struct {
24                 uint8 sid_rev_num;
25                 uint8 num_auths;
26                 uint8 id_auth[6];
27                 uint32 sub_auths[MAXSUBAUTHS];
28         } domsid;
29
30         /*******************************************/
31         /* NetJoinDomain                           */
32         /*******************************************/
33
34         typedef [public,bitmap32bit] bitmap {
35                 NETSETUP_JOIN_DOMAIN                    = 0x00000001,
36                 NETSETUP_ACCT_CREATE                    = 0x00000002,
37                 NETSETUP_ACCT_DELETE                    = 0x00000004,
38                 NETSETUP_WIN9X_UPGRADE                  = 0x00000010,
39                 NETSETUP_DOMAIN_JOIN_IF_JOINED          = 0x00000020,
40                 NETSETUP_JOIN_UNSECURE                  = 0x00000040,
41                 NETSETUP_MACHINE_PWD_PASSED             = 0x00000080,
42                 NETSETUP_DEFER_SPN_SET                  = 0x00000100,
43                 NETSETUP_JOIN_DC_ACCOUNT                = 0x00000200,
44                 NETSETUP_JOIN_WITH_NEW_NAME             = 0x00000400,
45                 NETSETUP_INSTALL_INVOCATION             = 0x00040000,
46                 NETSETUP_IGNORE_UNSUPPORTED_FLAGS       = 0x10000000
47         } NetJoinFlags;
48
49         [nopush,nopull] NET_API_STATUS NetJoinDomain(
50                 [in,unique] string *server,
51                 [in,ref] string *domain,
52                 [in,unique] string *account_ou,
53                 [in,unique] string *account,
54                 [in,unique] string *password,
55                 [in] NetJoinFlags join_flags
56                 );
57
58         /*******************************************/
59         /* NetUnjoinDomain                         */
60         /*******************************************/
61
62         [nopush,nopull] NET_API_STATUS NetUnjoinDomain(
63                 [in,unique] string *server_name,
64                 [in,unique] string *account,
65                 [in,unique] string *password,
66                 [in] NetJoinFlags unjoin_flags
67                 );
68
69         /*******************************************/
70         /* NetGetJoinInformation                   */
71         /*******************************************/
72
73         typedef enum {
74                 NetSetupUnknownStatus = 0,
75                 NetSetupUnjoined = 1,
76                 NetSetupWorkgroupName = 2,
77                 NetSetupDomainName = 3
78         } NETSETUP_JOIN_STATUS;
79
80         [nopush,nopull] NET_API_STATUS NetGetJoinInformation(
81                 [in,unique] string *server_name,
82                 [out] string **name_buffer,
83                 [out] uint16 *name_type
84                 );
85
86         /*******************************************/
87         /* NetGetJoinableOUs                       */
88         /*******************************************/
89
90         [nopush,nopull] NET_API_STATUS NetGetJoinableOUs(
91                 [in,unique] string *server_name,
92                 [in,ref] string *domain,
93                 [in,unique] string *account,
94                 [in,unique] string *password,
95                 [out] uint32 *ou_count,
96                 [out] string ***ous
97                 );
98
99         /*******************************************/
100         /* NetRenameMachineInDomain                */
101         /*******************************************/
102
103         [nopush,nopull] NET_API_STATUS NetRenameMachineInDomain(
104                 [in] string server_name,
105                 [in] string new_machine_name,
106                 [in] string account,
107                 [in] string password,
108                 [in] uint32 rename_options
109                 );
110
111         /*******************************************/
112         /* NetServerGetInfo                        */
113         /*******************************************/
114
115         [public] typedef struct {
116                 uint32 sv100_platform_id;
117                 string sv100_name;
118         } SERVER_INFO_100;
119
120         [public] typedef struct {
121                 uint32 sv101_platform_id;
122                 string sv101_name;
123                 uint32 sv101_version_major;
124                 uint32 sv101_version_minor;
125                 uint32 sv101_type;
126                 string sv101_comment;
127         } SERVER_INFO_101;
128
129         [public] typedef struct {
130                 uint32 sv102_platform_id;
131                 string sv102_name;
132                 uint32 sv102_version_major;
133                 uint32 sv102_version_minor;
134                 uint32 sv102_type;
135                 string sv102_comment;
136                 uint32 sv102_users;
137                 uint32 sv102_disc;
138                 boolean8 sv102_hidden;
139                 uint32 sv102_announce;
140                 uint32 sv102_anndelta;
141                 uint32 sv102_licenses;
142                 string sv102_userpath;
143         } SERVER_INFO_102;
144
145         [public] typedef struct {
146                 uint32 sv402_ulist_mtime;
147                 uint32 sv402_glist_mtime;
148                 uint32 sv402_alist_mtime;
149                 string sv402_alerts;
150                 uint32 sv402_security;
151                 uint32 sv402_numadmin;
152                 uint32 sv402_lanmask;
153                 string sv402_guestacct;
154                 uint32 sv402_chdevs;
155                 uint32 sv402_chdevq;
156                 uint32 sv402_chdevjobs;
157                 uint32 sv402_connections;
158                 uint32 sv402_shares;
159                 uint32 sv402_openfiles;
160                 uint32 sv402_sessopens;
161                 uint32 sv402_sessvcs;
162                 uint32 sv402_sessreqs;
163                 uint32 sv402_opensearch;
164                 uint32 sv402_activelocks;
165                 uint32 sv402_numreqbuf;
166                 uint32 sv402_sizreqbuf;
167                 uint32 sv402_numbigbuf;
168                 uint32 sv402_numfiletasks;
169                 uint32 sv402_alertsched;
170                 uint32 sv402_erroralert;
171                 uint32 sv402_logonalert;
172                 uint32 sv402_accessalert;
173                 uint32 sv402_diskalert;
174                 uint32 sv402_netioalert;
175                 uint32 sv402_maxauditsz;
176                 string sv402_srvheuristics;
177         } SERVER_INFO_402;
178
179         [public] typedef struct {
180                 uint32 sv403_ulist_mtime;
181                 uint32 sv403_glist_mtime;
182                 uint32 sv403_alist_mtime;
183                 string sv403_alerts;
184                 uint32 sv403_security;
185                 uint32 sv403_numadmin;
186                 uint32 sv403_lanmask;
187                 string sv403_guestacct;
188                 uint32 sv403_chdevs;
189                 uint32 sv403_chdevq;
190                 uint32 sv403_chdevjobs;
191                 uint32 sv403_connections;
192                 uint32 sv403_shares;
193                 uint32 sv403_openfiles;
194                 uint32 sv403_sessopens;
195                 uint32 sv403_sessvcs;
196                 uint32 sv403_sessreqs;
197                 uint32 sv403_opensearch;
198                 uint32 sv403_activelocks;
199                 uint32 sv403_numreqbuf;
200                 uint32 sv403_sizreqbuf;
201                 uint32 sv403_numbigbuf;
202                 uint32 sv403_numfiletasks;
203                 uint32 sv403_alertsched;
204                 uint32 sv403_erroralert;
205                 uint32 sv403_logonalert;
206                 uint32 sv403_accessalert;
207                 uint32 sv403_diskalert;
208                 uint32 sv403_netioalert;
209                 uint32 sv403_maxauditsz;
210                 string sv403_srvheuristics;
211                 uint32 sv403_auditedevents;
212                 uint32 sv403_autoprofile;
213                 string sv403_autopath;
214         } SERVER_INFO_403;
215
216         [public] typedef struct {
217                 uint32 sv502_sessopens;
218                 uint32 sv502_sessvcs;
219                 uint32 sv502_opensearch;
220                 uint32 sv502_sizreqbuf;
221                 uint32 sv502_initworkitems;
222                 uint32 sv502_maxworkitems;
223                 uint32 sv502_rawworkitems;
224                 uint32 sv502_irpstacksize;
225                 uint32 sv502_maxrawbuflen;
226                 uint32 sv502_sessusers;
227                 uint32 sv502_sessconns;
228                 uint32 sv502_maxpagedmemoryusage;
229                 uint32 sv502_maxnonpagedmemoryusage;
230                 boolean8 sv502_enablesoftcompat;
231                 boolean8 sv502_enableforcedlogoff;
232                 boolean8 sv502_timesource;
233                 boolean8 sv502_acceptdownlevelapis;
234                 boolean8 sv502_lmannounce;
235         } SERVER_INFO_502;
236
237         [public] typedef struct {
238                 uint32 sv503_sessopens;
239                 uint32 sv503_sessvcs;
240                 uint32 sv503_opensearch;
241                 uint32 sv503_sizreqbuf;
242                 uint32 sv503_initworkitems;
243                 uint32 sv503_maxworkitems;
244                 uint32 sv503_rawworkitems;
245                 uint32 sv503_irpstacksize;
246                 uint32 sv503_maxrawbuflen;
247                 uint32 sv503_sessusers;
248                 uint32 sv503_sessconns;
249                 uint32 sv503_maxpagedmemoryusage;
250                 uint32 sv503_maxnonpagedmemoryusage;
251                 boolean8 sv503_enablesoftcompat;
252                 boolean8 sv503_enableforcedlogoff;
253                 boolean8 sv503_timesource;
254                 boolean8 sv503_acceptdownlevelapis;
255                 boolean8 sv503_lmannounce;
256                 string sv503_domain;
257                 uint32 sv503_maxcopyreadlen;
258                 uint32 sv503_maxcopywritelen;
259                 uint32 sv503_minkeepsearch;
260                 uint32 sv503_maxkeepsearch;
261                 uint32 sv503_minkeepcomplsearch;
262                 uint32 sv503_maxkeepcomplsearch;
263                 uint32 sv503_threadcountadd;
264                 uint32 sv503_numblockthreads;
265                 uint32 sv503_scavtimeout;
266                 uint32 sv503_minrcvqueue;
267                 uint32 sv503_minfreeworkitems;
268                 uint32 sv503_xactmemsize;
269                 uint32 sv503_threadpriority;
270                 uint32 sv503_maxmpxct;
271                 uint32 sv503_oplockbreakwait;
272                 uint32 sv503_oplockbreakresponsewait;
273                 boolean8 sv503_enableoplocks;
274                 boolean8 sv503_enableoplockforceclose;
275                 boolean8 sv503_enablefcbopens;
276                 boolean8 sv503_enableraw;
277                 boolean8 sv503_enablesharednetdrives;
278                 uint32 sv503_minfreeconnections;
279                 uint32 sv503_maxfreeconnections;
280         } SERVER_INFO_503;
281
282         [public] typedef struct {
283                 uint32 sv599_sessopens;
284                 uint32 sv599_sessvcs;
285                 uint32 sv599_opensearch;
286                 uint32 sv599_sizreqbuf;
287                 uint32 sv599_initworkitems;
288                 uint32 sv599_maxworkitems;
289                 uint32 sv599_rawworkitems;
290                 uint32 sv599_irpstacksize;
291                 uint32 sv599_maxrawbuflen;
292                 uint32 sv599_sessusers;
293                 uint32 sv599_sessconns;
294                 uint32 sv599_maxpagedmemoryusage;
295                 uint32 sv599_maxnonpagedmemoryusage;
296                 boolean8 sv599_enablesoftcompat;
297                 boolean8 sv599_enableforcedlogoff;
298                 boolean8 sv599_timesource;
299                 boolean8 sv599_acceptdownlevelapis;
300                 boolean8 sv599_lmannounce;
301                 string sv599_domain;
302                 uint32 sv599_maxcopyreadlen;
303                 uint32 sv599_maxcopywritelen;
304                 uint32 sv599_minkeepsearch;
305                 uint32 sv599_maxkeepsearch;
306                 uint32 sv599_minkeepcomplsearch;
307                 uint32 sv599_maxkeepcomplsearch;
308                 uint32 sv599_threadcountadd;
309                 uint32 sv599_numblockthreads;
310                 uint32 sv599_scavtimeout;
311                 uint32 sv599_minrcvqueue;
312                 uint32 sv599_minfreeworkitems;
313                 uint32 sv599_xactmemsize;
314                 uint32 sv599_threadpriority;
315                 uint32 sv599_maxmpxct;
316                 uint32 sv599_oplockbreakwait;
317                 uint32 sv599_oplockbreakresponsewait;
318                 boolean8 sv599_enableoplocks;
319                 boolean8 sv599_enableoplockforceclose;
320                 boolean8 sv599_enablefcbopens;
321                 boolean8 sv599_enableraw;
322                 boolean8 sv599_enablesharednetdrives;
323                 uint32 sv599_minfreeconnections;
324                 uint32 sv599_maxfreeconnections;
325                 uint32 sv599_initsesstable;
326                 uint32 sv599_initconntable;
327                 uint32 sv599_initfiletable;
328                 uint32 sv599_initsearchtable;
329                 uint32 sv599_alertschedule;
330                 uint32 sv599_errorthreshold;
331                 uint32 sv599_networkerrorthreshold;
332                 uint32 sv599_diskspacethreshold;
333                 uint32 sv599_reserved;
334                 uint32 sv599_maxlinkdelay;
335                 uint32 sv599_minlinkthroughput;
336                 uint32 sv599_linkinfovalidtime;
337                 uint32 sv599_scavqosinfoupdatetime;
338                 uint32 sv599_maxworkitemidletime;
339         } SERVER_INFO_599;
340
341         [public] typedef struct {
342                 uint32 sv598_maxrawworkitems;
343                 uint32 sv598_maxthreadsperqueue;
344                 uint32 sv598_producttype;
345                 uint32 sv598_serversize;
346                 uint32 sv598_connectionlessautodisc;
347                 uint32 sv598_sharingviolationretries;
348                 uint32 sv598_sharingviolationdelay;
349                 uint32 sv598_maxglobalopensearch;
350                 uint32 sv598_removeduplicatesearches;
351                 uint32 sv598_lockviolationoffset;
352                 uint32 sv598_lockviolationdelay;
353                 uint32 sv598_mdlreadswitchover;
354                 uint32 sv598_cachedopenlimit;
355                 uint32 sv598_otherqueueaffinity;
356                 boolean8  sv598_restrictnullsessaccess;
357                 boolean8  sv598_enablewfw311directipx;
358                 uint32 sv598_queuesamplesecs;
359                 uint32 sv598_balancecount;
360                 uint32 sv598_preferredaffinity;
361                 uint32 sv598_maxfreerfcbs;
362                 uint32 sv598_maxfreemfcbs;
363                 uint32 sv598_maxfreelfcbs;
364                 uint32 sv598_maxfreepagedpoolchunks;
365                 uint32 sv598_minpagedpoolchunksize;
366                 uint32 sv598_maxpagedpoolchunksize;
367                 boolean8 sv598_sendsfrompreferredprocessor;
368                 uint32 sv598_cacheddirectorylimit;
369                 uint32 sv598_maxcopylength;
370                 boolean8 sv598_enablecompression;
371                 boolean8 sv598_autosharewks;
372                 boolean8 sv598_autoshareserver;
373                 boolean8 sv598_enablesecuritysignature;
374                 boolean8 sv598_requiresecuritysignature;
375                 uint32 sv598_minclientbuffersize;
376                 GUID sv598_serverguid;
377                 uint32 sv598_ConnectionNoSessionsTimeout;
378                 uint32 sv598_IdleThreadTimeOut;
379                 boolean8 sv598_enableW9xsecuritysignature;
380                 boolean8 sv598_enforcekerberosreauthentication;
381                 boolean8 sv598_disabledos;
382                 uint32 sv598_lowdiskspaceminimum;
383                 boolean8 sv598_disablestrictnamechecking;
384         } SERVER_INFO_598;
385
386         [public] typedef struct {
387                 string sv1005_comment;
388         } SERVER_INFO_1005;
389
390         [public] typedef struct {
391                 uint32 sv1107_users;
392         } SERVER_INFO_1107;
393
394         [public] typedef struct {
395                 int32 sv1010_disc;
396         } SERVER_INFO_1010;
397
398         [public] typedef struct {
399                 boolean8  sv1016_hidden;
400         } SERVER_INFO_1016;
401
402         [public] typedef struct {
403                 uint32 sv1017_announce;
404         } SERVER_INFO_1017;
405
406         [public] typedef struct {
407                 uint32 sv1018_anndelta;
408         } SERVER_INFO_1018;
409
410         [public] typedef struct {
411                 uint32 sv1501_sessopens;
412         } SERVER_INFO_1501;
413
414         [public] typedef struct {
415                 uint32 sv1502_sessvcs;
416         } SERVER_INFO_1502;
417
418         [public] typedef struct {
419                 uint32 sv1503_opensearch;
420         } SERVER_INFO_1503;
421
422         [public] typedef struct {
423                 uint32 sv1506_maxworkitems;
424         } SERVER_INFO_1506;
425
426         [public] typedef struct {
427                 uint32 sv1509_maxrawbuflen;
428         } SERVER_INFO_1509;
429
430         [public] typedef struct {
431                 uint32 sv1510_sessusers;
432         } SERVER_INFO_1510;
433
434         [public] typedef struct {
435                 uint32 sv1511_sessconns;
436         } SERVER_INFO_1511;
437
438         [public] typedef struct {
439                 uint32 sv1512_maxnonpagedmemoryusage;
440         } SERVER_INFO_1512;
441
442         [public] typedef struct {
443                 uint32 sv1513_maxpagedmemoryusage;
444         } SERVER_INFO_1513;
445
446         [public] typedef struct {
447                 boolean8 sv1514_enablesoftcompat;
448         } SERVER_INFO_1514;
449
450         [public] typedef struct {
451                 boolean8  sv1515_enableforcedlogoff;
452         } SERVER_INFO_1515;
453
454         [public] typedef struct {
455                 boolean8  sv1516_timesource;
456         } SERVER_INFO_1516;
457
458         [public] typedef struct {
459                 boolean8  sv1518_lmannounce;
460         } SERVER_INFO_1518;
461
462         [public] typedef struct {
463                 uint32 sv1520_maxcopyreadlen;
464         } SERVER_INFO_1520;
465
466         [public] typedef struct {
467                 uint32 sv1521_maxcopywritelen;
468         } SERVER_INFO_1521;
469
470         [public] typedef struct {
471                 uint32 sv1522_minkeepsearch;
472         } SERVER_INFO_1522;
473
474         [public] typedef struct {
475                 uint32 sv1523_maxkeepsearch;
476         } SERVER_INFO_1523;
477
478         [public] typedef struct {
479                 uint32 sv1524_minkeepcomplsearch;
480         } SERVER_INFO_1524;
481
482         [public] typedef struct {
483                 uint32 sv1525_maxkeepcomplsearch;
484         } SERVER_INFO_1525;
485
486         [public] typedef struct {
487                 uint32 sv1528_scavtimeout;
488         } SERVER_INFO_1528;
489
490         [public] typedef struct {
491                 uint32 sv1529_minrcvqueue;
492         } SERVER_INFO_1529;
493
494         [public] typedef struct {
495                 uint32 sv1530_minfreeworkitems;
496         } SERVER_INFO_1530;
497
498         [public] typedef struct {
499                 uint32 sv1533_maxmpxct;
500         } SERVER_INFO_1533;
501
502         [public] typedef struct {
503                 uint32 sv1534_oplockbreakwait;
504         } SERVER_INFO_1534;
505
506         [public] typedef struct {
507                 uint32 sv1535_oplockbreakresponsewait;
508         } SERVER_INFO_1535;
509
510         [public] typedef struct {
511                 boolean8 sv1536_enableoplocks;
512         } SERVER_INFO_1536;
513
514         [public] typedef struct {
515                 boolean8 sv1537_enableoplockforceclose;
516         } SERVER_INFO_1537;
517
518         [public] typedef struct {
519                 boolean8 sv1538_enablefcbopens;
520         } SERVER_INFO_1538;
521
522         [public] typedef struct {
523                 boolean8 sv1539_enableraw;
524         } SERVER_INFO_1539;
525
526         [public] typedef struct {
527                 boolean8 sv1540_enablesharednetdrives;
528         } SERVER_INFO_1540;
529
530         [public] typedef struct {
531                 boolean8 sv1541_minfreeconnections;
532         } SERVER_INFO_1541;
533
534         [public] typedef struct {
535                 boolean8 sv1542_maxfreeconnections;
536         } SERVER_INFO_1542;
537
538         [public] typedef struct {
539                 uint32 sv1543_initsesstable;
540         } SERVER_INFO_1543;
541
542         [public] typedef struct {
543                 uint32 sv1544_initconntable;
544         } SERVER_INFO_1544;
545
546         [public] typedef struct {
547                 uint32 sv1545_initfiletable;
548         } SERVER_INFO_1545;
549
550         [public] typedef struct {
551                 uint32 sv1546_initsearchtable;
552         } SERVER_INFO_1546;
553
554         [public] typedef struct {
555                 uint32 sv1547_alertschedule;
556         } SERVER_INFO_1547;
557
558         [public] typedef struct {
559                 uint32 sv1548_errorthreshold;
560         } SERVER_INFO_1548;
561
562         [public] typedef struct {
563                 uint32 sv1549_networkerrorthreshold;
564         } SERVER_INFO_1549;
565
566         [public] typedef struct {
567                 uint32 sv1550_diskspacethreshold;
568         } SERVER_INFO_1550;
569
570         [public] typedef struct {
571                 uint32 sv1552_maxlinkdelay;
572         } SERVER_INFO_1552;
573
574         [public] typedef struct {
575                 uint32 sv1553_minlinkthroughput;
576         } SERVER_INFO_1553;
577
578         [public] typedef struct {
579                 uint32 sv1554_linkinfovalidtime;
580         } SERVER_INFO_1554;
581
582         [public] typedef struct {
583                 uint32 sv1555_scavqosinfoupdatetime;
584         } SERVER_INFO_1555;
585
586         [public] typedef struct {
587                 uint32 sv1556_maxworkitemidletime;
588         } SERVER_INFO_1556;
589
590         [public] typedef struct {
591                 uint32 sv1557_maxrawworkitems;
592         } SERVER_INFO_1557;
593
594         [public] typedef struct {
595                 uint32 sv1560_producttype;
596         } SERVER_INFO_1560;
597
598         [public] typedef struct {
599                 uint32 sv1561_serversize;
600         } SERVER_INFO_1561;
601
602         [public] typedef struct {
603                 uint32 sv1562_connectionlessautodisc;
604         } SERVER_INFO_1562;
605
606         [public] typedef struct {
607                 uint32 sv1563_sharingviolationretries;
608         } SERVER_INFO_1563;
609
610         [public] typedef struct {
611                 uint32 sv1564_sharingviolationdelay;
612         } SERVER_INFO_1564;
613
614         [public] typedef struct {
615                 uint32 sv1565_maxglobalopensearch;
616         } SERVER_INFO_1565;
617
618         [public] typedef struct {
619                 boolean8 sv1566_removeduplicatesearches;
620         } SERVER_INFO_1566;
621
622         [public] typedef struct {
623                 uint32 sv1567_lockviolationretries;
624         } SERVER_INFO_1567;
625
626         [public] typedef struct {
627                 uint32 sv1568_lockviolationoffset;
628         } SERVER_INFO_1568;
629
630         [public] typedef struct {
631                 uint32 sv1569_lockviolationdelay;
632         } SERVER_INFO_1569;
633
634         [public] typedef struct {
635                 uint32 sv1570_mdlreadswitchover;
636         } SERVER_INFO_1570;
637
638         [public] typedef struct {
639                 uint32 sv1571_cachedopenlimit;
640         } SERVER_INFO_1571;
641
642         [public] typedef struct {
643                 uint32 sv1572_criticalthreads;
644         } SERVER_INFO_1572;
645
646         [public] typedef struct {
647                 uint32 sv1573_restrictnullsessaccess;
648         } SERVER_INFO_1573;
649
650         [public] typedef struct {
651                 uint32 sv1574_enablewfw311directipx;
652         } SERVER_INFO_1574;
653
654         [public] typedef struct {
655                 uint32 sv1575_otherqueueaffinity;
656         } SERVER_INFO_1575;
657
658         [public] typedef struct {
659                 uint32 sv1576_queuesamplesecs;
660         } SERVER_INFO_1576;
661
662         [public] typedef struct {
663                 uint32 sv1577_balancecount;
664         } SERVER_INFO_1577;
665
666         [public] typedef struct {
667                 uint32 sv1578_preferredaffinity;
668         } SERVER_INFO_1578;
669
670         [public] typedef struct {
671                 uint32 sv1579_maxfreerfcbs;
672         } SERVER_INFO_1579;
673
674         [public] typedef struct {
675                 uint32 sv1580_maxfreemfcbs;
676         } SERVER_INFO_1580;
677
678         [public] typedef struct {
679                 uint32 sv1581_maxfreemlcbs;
680         } SERVER_INFO_1581;
681
682         [public] typedef struct {
683                 uint32 sv1582_maxfreepagedpoolchunks;
684         } SERVER_INFO_1582;
685
686         [public] typedef struct {
687                 uint32 sv1583_minpagedpoolchunksize;
688         } SERVER_INFO_1583;
689
690         [public] typedef struct {
691                 uint32 sv1584_maxpagedpoolchunksize;
692         } SERVER_INFO_1584;
693
694         [public] typedef struct {
695                 boolean8 sv1585_sendsfrompreferredprocessor;
696         } SERVER_INFO_1585;
697
698         [public] typedef struct {
699                 uint32 sv1586_maxthreadsperqueue;
700         } SERVER_INFO_1586;
701
702         [public] typedef struct {
703                 uint32 sv1587_cacheddirectorylimit;
704         } SERVER_INFO_1587;
705
706         [public] typedef struct {
707                 uint32 sv1588_maxcopylength;
708         } SERVER_INFO_1588;
709
710         [public] typedef struct {
711                 uint32 sv1590_enablecompression;
712         } SERVER_INFO_1590;
713
714         [public] typedef struct {
715                 uint32 sv1591_autosharewks;
716         } SERVER_INFO_1591;
717
718         [public] typedef struct {
719                 uint32 sv1592_autosharewks;
720         } SERVER_INFO_1592;
721
722         [public] typedef struct {
723                 uint32 sv1593_enablesecuritysignature;
724         } SERVER_INFO_1593;
725
726         [public] typedef struct {
727                 uint32 sv1594_requiresecuritysignature;
728         } SERVER_INFO_1594;
729
730         [public] typedef struct {
731                 uint32 sv1595_minclientbuffersize;
732         } SERVER_INFO_1595;
733
734         [public] typedef struct {
735                 uint32 sv1596_ConnectionNoSessionsTimeout;
736         } SERVER_INFO_1596;
737
738         [public] typedef struct {
739                 uint32 sv1597_IdleThreadTimeOut;
740         } SERVER_INFO_1597;
741
742         [public] typedef struct {
743                 uint32 sv1598_enableW9xsecuritysignature;
744         } SERVER_INFO_1598;
745
746         [public] typedef struct {
747                 boolean8 sv1598_enforcekerberosreauthentication;
748         } SERVER_INFO_1599;
749
750         [public] typedef struct {
751                 boolean8 sv1598_disabledos;
752         } SERVER_INFO_1600;
753
754         [public] typedef struct {
755                 uint32 sv1598_lowdiskspaceminimum;
756         } SERVER_INFO_1601;
757
758         [public] typedef struct {
759                 boolean8 sv_1598_disablestrictnamechecking;
760         } SERVER_INFO_1602;
761
762         [nopush,nopull] NET_API_STATUS NetServerGetInfo(
763                 [in,unique] string *server_name,
764                 [in] uint32 level,
765                 [out] uint8 **buffer
766                 );
767
768         /*******************************************/
769         /* NetServerSetInfo                        */
770         /*******************************************/
771
772         [nopush,nopull] NET_API_STATUS NetServerSetInfo(
773                 [in,unique] string *server_name,
774                 [in] uint32 level,
775                 [in] uint8 *buffer,
776                 [out] uint32 *parm_error
777                 );
778
779         /*******************************************/
780         /* NetGetDCName                            */
781         /*******************************************/
782
783         [nopush,nopull] NET_API_STATUS NetGetDCName(
784                 [in,unique] string *server_name,
785                 [in,unique] string *domain_name,
786                 [out] uint8 **buffer
787                 );
788
789         /*******************************************/
790         /* NetGetAnyDCName                         */
791         /*******************************************/
792
793         [nopush,nopull] NET_API_STATUS NetGetAnyDCName(
794                 [in,unique] string *server_name,
795                 [in,unique] string *domain_name,
796                 [out] uint8 **buffer
797                 );
798
799         /*******************************************/
800         /* DsGetDcName                             */
801         /*******************************************/
802
803         [public] typedef [v1_enum] enum {
804                 DS_PDC_FLAG                     = 0x00000001,
805                 DS_GC_FLAG                      = 0x00000004,
806                 DS_LDAP_FLAG                    = 0x00000008,
807                 DS_DS_FLAG                      = 0x00000010,
808                 DS_KDC_FLAG                     = 0x00000020,
809                 DS_TIMESERV_FLAG                = 0x00000040,
810                 DS_CLOSEST_FLAG                 = 0x00000080,
811                 DS_WRITABLE_FLAG                = 0x00000100,
812                 DS_GOOD_TIMESERV_FLAG           = 0x00000200,
813                 DS_NDNC_FLAG                    = 0x00000400,
814                 DS_SELECT_SECRET_DOMAIN_6_FLAG  = 0x00000800,
815                 DS_FULL_SECRET_DOMAIN_6_FLAG    = 0x00001000,
816                 DS_DNS_CONTROLLER_FLAG          = 0x20000000,
817                 DS_DNS_DOMAIN_FLAG              = 0x40000000,
818                 DS_DNS_FOREST_FLAG              = 0x80000000
819         } DOMAIN_CONTROLLER_INFO_FLAGS;
820
821         [public] typedef struct {
822                 string domain_controller_name;
823                 string domain_controller_address;
824                 uint32 domain_controller_address_type;
825                 GUID domain_guid;
826                 string domain_name;
827                 string dns_forest_name;
828                 DOMAIN_CONTROLLER_INFO_FLAGS flags;
829                 string dc_site_name;
830                 string client_site_name;
831         } DOMAIN_CONTROLLER_INFO;
832
833         [nopush,nopull] NET_API_STATUS DsGetDcName(
834                 [in,unique] string *server_name,
835                 [in,ref] string *domain_name,
836                 [in,unique] GUID *domain_guid,
837                 [in,unique] string *site_name,
838                 [in] uint32 flags,
839                 [out,ref] DOMAIN_CONTROLLER_INFO **dc_info
840                 );
841
842         /*******************************************/
843         /* NetUserAdd                              */
844         /*******************************************/
845
846         [public] typedef struct {
847                 string usri0_name;
848         } USER_INFO_0;
849
850         /* priv */
851         const int USER_PRIV_GUEST       = 0;
852         const int USER_PRIV_USER        = 1;
853         const int USER_PRIV_ADMIN       = 2;
854
855         [public] typedef struct {
856                 string usri1_name;
857                 string usri1_password;
858                 uint32 usri1_password_age;
859                 uint32 usri1_priv;
860                 string usri1_home_dir;
861                 string usri1_comment;
862                 uint32 usri1_flags;
863                 string usri1_script_path;
864         } USER_INFO_1;
865
866         /* auth_flags in USER_INFO_2 */
867
868         const int AF_OP_PRINT           = 0x1;
869         const int AF_OP_COMM            = 0x2;
870         const int AF_OP_SERVER          = 0x4;
871         const int AF_OP_ACCOUNTS        = 0x8;
872         const int AF_SETTABLE_BITS      = (AF_OP_PRINT | AF_OP_COMM | AF_OP_SERVER | AF_OP_ACCOUNTS);
873
874         const int USER_MAXSTORAGE_UNLIMITED = (uint32_t)-1L;
875
876         [public] typedef struct {
877                 string usri2_name;
878                 string usri2_password;
879                 uint32 usri2_password_age;
880                 uint32 usri2_priv;
881                 string usri2_home_dir;
882                 string usri2_comment;
883                 uint32 usri2_flags;
884                 string usri2_script_path;
885                 uint32 usri2_auth_flags;
886                 string usri2_full_name;
887                 string usri2_usr_comment;
888                 string usri2_parms;
889                 string usri2_workstations;
890                 uint32 usri2_last_logon;
891                 uint32 usri2_last_logoff;
892                 uint32 usri2_acct_expires;
893                 uint32 usri2_max_storage;
894                 uint32 usri2_units_per_week;
895                 uint8 *usri2_logon_hours;
896                 uint32 usri2_bad_pw_count;
897                 uint32 usri2_num_logons;
898                 string usri2_logon_server;
899                 uint32 usri2_country_code;
900                 uint32 usri2_code_page;
901         } USER_INFO_2;
902
903         [public] typedef struct {
904                 string usri3_name;
905                 uint32 usri3_password_age;
906                 uint32 usri3_priv;
907                 string usri3_home_dir;
908                 string usri3_comment;
909                 uint32 usri3_flags;
910                 string usri3_script_path;
911                 uint32 usri3_auth_flags;
912                 string usri3_full_name;
913                 string usri3_usr_comment;
914                 string usri3_parms;
915                 string usri3_workstations;
916                 uint32 usri3_last_logon;
917                 uint32 usri3_last_logoff;
918                 uint32 usri3_acct_expires;
919                 uint32 usri3_max_storage;
920                 uint32 usri3_units_per_week;
921                 uint8 *usri3_logon_hours;
922                 uint32 usri3_bad_pw_count;
923                 uint32 usri3_num_logons;
924                 string usri3_logon_server;
925                 uint32 usri3_country_code;
926                 uint32 usri3_code_page;
927                 uint32 usri3_user_id;
928                 uint32 usri3_primary_group_id;
929                 string usri3_profile;
930                 string usri3_home_dir_drive;
931                 uint32 usri3_password_expired;
932         } USER_INFO_3;
933
934         [public] typedef struct {
935                 string usri4_name;
936                 string usri4_password;
937                 uint32 usri4_password_age;
938                 uint32 usri4_priv;
939                 string usri4_home_dir;
940                 string usri4_comment;
941                 uint32 usri4_flags;
942                 string usri4_script_path;
943                 uint32 usri4_auth_flags;
944                 string usri4_full_name;
945                 string usri4_usr_comment;
946                 string usri4_parms;
947                 string usri4_workstations;
948                 uint32 usri4_last_logon;
949                 uint32 usri4_last_logoff;
950                 uint32 usri4_acct_expires;
951                 uint32 usri4_max_storage;
952                 uint32 usri4_units_per_week;
953                 uint8 *usri4_logon_hours;
954                 uint32 usri4_bad_pw_count;
955                 uint32 usri4_num_logons;
956                 string usri4_logon_server;
957                 uint32 usri4_country_code;
958                 uint32 usri4_code_page;
959                 domsid *usri4_user_sid;
960                 uint32 usri4_primary_group_id;
961                 string usri4_profile;
962                 string usri4_home_dir_drive;
963                 uint32 usri4_password_expired;
964         } USER_INFO_4;
965
966         [public] typedef struct {
967                 string usri10_name;
968                 string usri10_comment;
969                 string usri10_usr_comment;
970                 string usri10_full_name;
971         } USER_INFO_10;
972
973         [public] typedef struct {
974                 string usri11_name;
975                 string usri11_comment;
976                 string usri11_usr_comment;
977                 string usri11_full_name;
978                 uint32 usri11_priv;
979                 uint32 usri11_auth_flags;
980                 uint32 usri11_password_age;
981                 string usri11_home_dir;
982                 string usri11_parms;
983                 uint32 usri11_last_logon;
984                 uint32 usri11_last_logoff;
985                 uint32 usri11_bad_pw_count;
986                 uint32 usri11_num_logons;
987                 string usri11_logon_server;
988                 uint32 usri11_country_code;
989                 string usri11_workstations;
990                 uint32 usri11_max_storage;
991                 uint32 usri11_units_per_week;
992                 uint8 *usri11_logon_hours;
993                 uint32 usri11_code_page;
994         } USER_INFO_11;
995
996         [public] typedef struct {
997                 string usri20_name;
998                 string usri20_full_name;
999                 string usri20_comment;
1000                 uint32 usri20_flags;
1001                 uint32 usri20_user_id;
1002         } USER_INFO_20;
1003
1004         const int ENCRYPTED_PWLEN = 16;
1005
1006         [public] typedef struct {
1007                 uint8 usri21_password[ENCRYPTED_PWLEN];
1008         } USER_INFO_21;
1009
1010         [public] typedef struct {
1011                 string usri22_name;
1012                 uint8 usri22_password[ENCRYPTED_PWLEN];
1013                 uint32 usri22_password_age;
1014                 uint32 usri22_priv;
1015                 string usri22_home_dir;
1016                 string usri22_comment;
1017                 uint32 usri22_flags;
1018                 uint32 usri22_script_path;
1019                 uint32 usri22_auth_flags;
1020                 string usri22_full_name;
1021                 string usri22_usr_comment;
1022                 string usri22_parms;
1023                 string usri22_workstations;
1024                 uint32 usri22_last_logon;
1025                 uint32 usri22_last_logoff;
1026                 uint32 usri22_acct_expires;
1027                 uint32 usri22_max_storage;
1028                 uint32 usri22_units_per_week;
1029                 uint8 *usri22_logon_hours;
1030                 uint32 usri22_bad_pw_count;
1031                 uint32 usri22_num_logons;
1032                 string usri22_logon_server;
1033                 uint32 usri22_country_code;
1034                 uint32 usri22_code_page;
1035         } USER_INFO_22;
1036
1037         [public] typedef struct {
1038                 string usri23_name;
1039                 string usri23_full_name;
1040                 string usri23_comment;
1041                 uint32 usri23_flags;
1042                 domsid *usri23_user_sid;
1043         } USER_INFO_23;
1044
1045         [public] typedef struct {
1046                 string usri1003_password;
1047         } USER_INFO_1003;
1048
1049         [public] typedef struct {
1050                 uint32 usri1005_priv;
1051         } USER_INFO_1005;
1052
1053         [public] typedef struct {
1054                 string usri1006_home_dir;
1055         } USER_INFO_1006;
1056
1057         [public] typedef struct {
1058                 string usri1007_comment;
1059         } USER_INFO_1007;
1060
1061         [public] typedef struct {
1062                 uint32 usri1008_flags;
1063         } USER_INFO_1008;
1064
1065         [public] typedef struct {
1066                 string usri1009_script_path;
1067         } USER_INFO_1009;
1068
1069         [public] typedef struct {
1070                 uint32 usri1010_auth_flags;
1071         } USER_INFO_1010;
1072
1073         [public] typedef struct {
1074                 string usri1011_full_name;
1075         } USER_INFO_1011;
1076
1077         [public] typedef struct {
1078                 string usri1012_usr_comment;
1079         } USER_INFO_1012;
1080
1081         [public] typedef struct {
1082                 string usri1013_parms;
1083         } USER_INFO_1013;
1084
1085         [public] typedef struct {
1086                 string usri1014_workstations;
1087         } USER_INFO_1014;
1088
1089         [public] typedef struct {
1090                 uint32 usri1017_acct_expires;
1091         } USER_INFO_1017;
1092
1093         [public] typedef struct {
1094                 uint32 usri1018_max_storage;
1095         } USER_INFO_1018;
1096
1097         [public] typedef struct {
1098                 uint32 usri1020_units_per_week;
1099                 uint8 *usri1020_logon_hours;
1100         } USER_INFO_1020;
1101
1102         [public] typedef struct {
1103                 string usri1023_logon_server;
1104         } USER_INFO_1023;
1105
1106         [public] typedef struct {
1107                 uint32 usri1024_country_code;
1108         } USER_INFO_1024;
1109
1110         [public] typedef struct {
1111                 uint32 usri1025_code_page;
1112         } USER_INFO_1025;
1113
1114         [public] typedef struct {
1115                 uint32 usri1051_primary_group_id;
1116         } USER_INFO_1051;
1117
1118         [public] typedef struct {
1119                 string usri1052_profile;
1120         } USER_INFO_1052;
1121
1122         [public] typedef struct {
1123                 string usri1053_home_dir_drive;
1124         } USER_INFO_1053;
1125
1126         [public] typedef struct {
1127                 string usriX_name;
1128                 string usriX_password;
1129                 uint32 usriX_password_age;
1130                 uint32 usriX_priv;
1131                 string usriX_home_dir;
1132                 string usriX_comment;
1133                 uint32 usriX_flags;
1134                 string usriX_script_path;
1135                 uint32 usriX_auth_flags;
1136                 string usriX_full_name;
1137                 string usriX_usr_comment;
1138                 string usriX_parms;
1139                 string usriX_workstations;
1140                 uint32 usriX_last_logon;
1141                 uint32 usriX_last_logoff;
1142                 uint32 usriX_acct_expires;
1143                 uint32 usriX_max_storage;
1144                 uint32 usriX_units_per_week;
1145                 uint8 *usriX_logon_hours;
1146                 uint32 usriX_bad_pw_count;
1147                 uint32 usriX_num_logons;
1148                 string usriX_logon_server;
1149                 uint32 usriX_country_code;
1150                 uint32 usriX_code_page;
1151                 string usriX_profile;
1152                 string usriX_home_dir_drive;
1153                 uint32 usriX_user_id;
1154                 uint32 usriX_primary_group_id;
1155                 uint32 usriX_password_expired;
1156         } USER_INFO_X;
1157
1158         [nopush,nopull] NET_API_STATUS NetUserAdd(
1159                 [in,unique] string *server_name,
1160                 [in] uint32 level,
1161                 [in,ref] uint8 *buffer,
1162                 [out,ref] uint32 *parm_error
1163                 );
1164
1165         /*******************************************/
1166         /* NetUserDel                              */
1167         /*******************************************/
1168
1169         [nopush,nopull] NET_API_STATUS NetUserDel(
1170                 [in,unique] string *server_name,
1171                 [in,ref] string *user_name
1172                 );
1173
1174         /*******************************************/
1175         /* NetUserEnum                             */
1176         /*******************************************/
1177
1178         const int FILTER_TEMP_DUPLICATE_ACCOUNT = 0x0001;
1179         const int FILTER_NORMAL_ACCOUNT = 0x0002;
1180         const int FILTER_INTERDOMAIN_TRUST_ACCOUNT = 0x0008;
1181         const int FILTER_WORKSTATION_TRUST_ACCOUNT = 0x0010;
1182         const int FILTER_SERVER_TRUST_ACCOUNT = 0x0020;
1183
1184         [nopush,nopull] NET_API_STATUS NetUserEnum(
1185                 [in,unique] string *server_name,
1186                 [in] uint32 level,
1187                 [in] uint32 filter,
1188                 [out,ref] uint8 **buffer,
1189                 [in] uint32 prefmaxlen,
1190                 [out,ref] uint32 *entries_read,
1191                 [out,ref] uint32 *total_entries,
1192                 [in,out,ref] uint32 *resume_handle
1193                 );
1194
1195         /*******************************************/
1196         /* NetUserChangePassword                   */
1197         /*******************************************/
1198
1199         [nopush,nopull] NET_API_STATUS NetUserChangePassword(
1200                 [in] string domain_name,
1201                 [in] string user_name,
1202                 [in] string old_password,
1203                 [in] string new_password
1204                 );
1205
1206         /*******************************************/
1207         /* NetUserGetInfo                          */
1208         /*******************************************/
1209
1210         [nopush,nopull] NET_API_STATUS NetUserGetInfo(
1211                 [in] string server_name,
1212                 [in] string user_name,
1213                 [in] uint32 level,
1214                 [out] uint8 **buffer
1215                 );
1216
1217         /*******************************************/
1218         /* NetUserSetInfo                          */
1219         /*******************************************/
1220
1221         [nopush,nopull] NET_API_STATUS NetUserSetInfo(
1222                 [in] string server_name,
1223                 [in] string user_name,
1224                 [in] uint32 level,
1225                 [in] uint8 *buffer,
1226                 [out] uint32 *parm_err
1227                 );
1228
1229         /*******************************************/
1230         /* NetUserGetGroups                        */
1231         /*******************************************/
1232
1233         [public] typedef struct {
1234                 string grui0_name;
1235         } GROUP_USERS_INFO_0;
1236
1237         [public] typedef struct {
1238                 string grui1_name;
1239                 uint32 grui1_attributes;
1240         } GROUP_USERS_INFO_1;
1241
1242         [nopush,nopull] NET_API_STATUS NetUserGetGroups(
1243                 [in] string server_name,
1244                 [in] string user_name,
1245                 [in] uint32 level,
1246                 [out] uint8 **buffer,
1247                 [in] uint32 prefmaxlen,
1248                 [out,ref] uint32 *entries_read,
1249                 [out,ref] uint32 *total_entries
1250                 );
1251
1252         /*******************************************/
1253         /* NetUserSetGroups                        */
1254         /*******************************************/
1255
1256         [nopush,nopull] NET_API_STATUS NetUserSetGroups(
1257                 [in] string server_name,
1258                 [in] string user_name,
1259                 [in] uint32 level,
1260                 [in] uint8 *buffer,
1261                 [in] uint32 num_entries
1262                 );
1263
1264         /*******************************************/
1265         /* NetUserGetLocalGroups                   */
1266         /*******************************************/
1267
1268         const int LG_INCLUDE_INDIRECT = 0x0001;
1269
1270         typedef struct {
1271                 string lgrui0_name;
1272         } LOCALGROUP_USERS_INFO_0;
1273
1274         [nopush,nopull] NET_API_STATUS NetUserGetLocalGroups(
1275                 [in] string server_name,
1276                 [in] string user_name,
1277                 [in] uint32 level,
1278                 [in] uint32 flags,
1279                 [out] uint8 **buffer,
1280                 [in] uint32 prefmaxlen,
1281                 [out,ref] uint32 *entries_read,
1282                 [out,ref] uint32 *total_entries
1283                 );
1284
1285         /*******************************************/
1286         /* NetUserModalsGet                        */
1287         /*******************************************/
1288
1289         const int TIMEQ_FOREVER = (uint32_t)-1L;
1290
1291         typedef struct {
1292                 uint32 usrmod0_min_passwd_len;
1293                 uint32 usrmod0_max_passwd_age;
1294                 uint32 usrmod0_min_passwd_age;
1295                 uint32 usrmod0_force_logoff;
1296                 uint32 usrmod0_password_hist_len;
1297         } USER_MODALS_INFO_0;
1298
1299         typedef struct {
1300                 uint32 usrmod1_role;
1301                 string usrmod1_primary;
1302         } USER_MODALS_INFO_1;
1303
1304         typedef struct {
1305                 string usrmod2_domain_name;
1306                 domsid *usrmod2_domain_id;
1307         } USER_MODALS_INFO_2;
1308
1309         typedef struct {
1310                 uint32 usrmod3_lockout_duration;
1311                 uint32 usrmod3_lockout_observation_window;
1312                 uint32 usrmod3_lockout_threshold;
1313         } USER_MODALS_INFO_3;
1314
1315         typedef struct {
1316                 uint32 usrmod1001_min_passwd_len;
1317         } USER_MODALS_INFO_1001;
1318
1319         typedef struct {
1320                 uint32 usrmod1002_max_passwd_age;
1321         } USER_MODALS_INFO_1002;
1322
1323         typedef struct {
1324                 uint32 usrmod1003_min_passwd_age;
1325         } USER_MODALS_INFO_1003;
1326
1327         typedef struct {
1328                 uint32 usrmod1004_force_logoff;
1329         } USER_MODALS_INFO_1004;
1330
1331         typedef struct {
1332                 uint32 usrmod1005_password_hist_len;
1333         } USER_MODALS_INFO_1005;
1334
1335         typedef struct {
1336                 uint32 usrmod1006_role;
1337         } USER_MODALS_INFO_1006;
1338
1339         typedef struct {
1340                 string usrmod1007_primary;
1341         } USER_MODALS_INFO_1007;
1342
1343         [nopush,nopull] NET_API_STATUS NetUserModalsGet(
1344                 [in] string server_name,
1345                 [in] uint32 level,
1346                 [out,ref] uint8 **buffer
1347                 );
1348
1349         /*******************************************/
1350         /* NetUserModalsSet                        */
1351         /*******************************************/
1352
1353         [nopush,nopull] NET_API_STATUS NetUserModalsSet(
1354                 [in] string server_name,
1355                 [in] uint32 level,
1356                 [in] uint8 *buffer,
1357                 [out,ref] uint32 *parm_err
1358                 );
1359
1360         /*******************************************/
1361         /* NetQueryDisplayInformation              */
1362         /*******************************************/
1363
1364         [public] typedef struct {
1365                 string usri1_name;
1366                 string usri1_comment;
1367                 uint32 usri1_flags;
1368                 string usri1_full_name;
1369                 uint32 usri1_user_id;
1370                 uint32 usri1_next_index;
1371         } NET_DISPLAY_USER;
1372
1373         [public] typedef struct {
1374                 string usri2_name;
1375                 string usri2_comment;
1376                 uint32 usri2_flags;
1377                 uint32 usri2_user_id;
1378                 uint32 usri2_next_index;
1379         } NET_DISPLAY_MACHINE;
1380
1381         [public] typedef struct {
1382                 string grpi3_name;
1383                 string grpi3_comment;
1384                 uint32 grpi3_group_id;
1385                 uint32 grpi3_attributes;
1386                 uint32 grpi3_next_index;
1387         } NET_DISPLAY_GROUP;
1388
1389         [nopush,nopull] NET_API_STATUS NetQueryDisplayInformation(
1390                 [in,unique] string *server_name,
1391                 [in] uint32 level,
1392                 [in] uint32 idx,
1393                 [in] uint32 entries_requested,
1394                 [in] uint32 prefmaxlen,
1395                 [out,ref] uint32 *entries_read,
1396                 [out,ref,noprint] void **buffer
1397                 );
1398
1399         /*******************************************/
1400         /* NetGroupAdd                             */
1401         /*******************************************/
1402
1403         typedef struct {
1404                 string grpi0_name;
1405         } GROUP_INFO_0;
1406
1407         typedef struct {
1408                 string grpi1_name;
1409                 string grpi1_comment;
1410         } GROUP_INFO_1;
1411
1412         typedef struct {
1413                 string grpi2_name;
1414                 string grpi2_comment;
1415                 uint32 grpi2_group_id;
1416                 uint32 grpi2_attributes;
1417         } GROUP_INFO_2;
1418
1419         typedef struct {
1420                 string grpi3_name;
1421                 string grpi3_comment;
1422                 domsid *grpi3_group_sid;
1423                 uint32 grpi3_attributes;
1424         } GROUP_INFO_3;
1425
1426         typedef struct {
1427                 string grpi1002_comment;
1428         } GROUP_INFO_1002;
1429
1430         typedef struct {
1431                 uint32 grpi1005_attributes;
1432         } GROUP_INFO_1005;
1433
1434         [nopush,nopull] NET_API_STATUS NetGroupAdd(
1435                 [in] string server_name,
1436                 [in] uint32 level,
1437                 [in] uint8 *buffer,
1438                 [out] uint32 *parm_err
1439                 );
1440
1441         /*******************************************/
1442         /* NetGroupDel                             */
1443         /*******************************************/
1444
1445         [nopush,nopull] NET_API_STATUS NetGroupDel(
1446                 [in] string server_name,
1447                 [in] string group_name
1448                 );
1449
1450         /*******************************************/
1451         /* NetGroupEnum                            */
1452         /*******************************************/
1453
1454         [nopush,nopull] NET_API_STATUS NetGroupEnum(
1455                 [in] string server_name,
1456                 [in] uint32 level,
1457                 [out,ref] uint8 **buffer,
1458                 [in] uint32 prefmaxlen,
1459                 [out,ref] uint32 *entries_read,
1460                 [out,ref] uint32 *total_entries,
1461                 [in,out,ref] uint32 *resume_handle
1462                 );
1463
1464         /*******************************************/
1465         /* NetGroupSetInfo                         */
1466         /*******************************************/
1467
1468         [nopush,nopull] NET_API_STATUS NetGroupSetInfo(
1469                 [in] string server_name,
1470                 [in] string group_name,
1471                 [in] uint32 level,
1472                 [in] uint8 *buffer,
1473                 [out] uint32 *parm_err
1474                 );
1475
1476         /*******************************************/
1477         /* NetGroupGetInfo                         */
1478         /*******************************************/
1479
1480         [nopush,nopull] NET_API_STATUS NetGroupGetInfo(
1481                 [in] string server_name,
1482                 [in] string group_name,
1483                 [in] uint32 level,
1484                 [out] uint8 **buffer
1485                 );
1486
1487         /*******************************************/
1488         /* NetGroupAddUser                         */
1489         /*******************************************/
1490
1491         [nopush,nopull] NET_API_STATUS NetGroupAddUser(
1492                 [in] string server_name,
1493                 [in] string group_name,
1494                 [in] string user_name
1495                 );
1496
1497         /*******************************************/
1498         /* NetGroupDelUser                         */
1499         /*******************************************/
1500
1501         [nopush,nopull] NET_API_STATUS NetGroupDelUser(
1502                 [in] string server_name,
1503                 [in] string group_name,
1504                 [in] string user_name
1505                 );
1506
1507         /*******************************************/
1508         /* NetGroupGetUsers                        */
1509         /*******************************************/
1510
1511         [nopush,nopull] NET_API_STATUS NetGroupGetUsers(
1512                 [in] string server_name,
1513                 [in] string group_name,
1514                 [in] uint32 level,
1515                 [out] uint8 **buffer,
1516                 [in] uint32 prefmaxlen,
1517                 [out,ref] uint32 *entries_read,
1518                 [out,ref] uint32 *total_entries,
1519                 [in,out,ref] uint32 *resume_handle
1520                 );
1521
1522         /*******************************************/
1523         /* NetGroupSetUsers                        */
1524         /*******************************************/
1525
1526         [nopush,nopull] NET_API_STATUS NetGroupSetUsers(
1527                 [in] string server_name,
1528                 [in] string group_name,
1529                 [in] uint32 level,
1530                 [in] uint8 *buffer,
1531                 [in] uint32 num_entries
1532                 );
1533
1534         /*******************************************/
1535         /* NetLocalGroupAdd                        */
1536         /*******************************************/
1537
1538         typedef struct {
1539                 string lgrpi0_name;
1540         } LOCALGROUP_INFO_0;
1541
1542         typedef struct {
1543                 string lgrpi1_name;
1544                 string lgrpi1_comment;
1545         } LOCALGROUP_INFO_1;
1546
1547         typedef struct {
1548                 string lgrpi1002_comment;
1549         } LOCALGROUP_INFO_1002;
1550
1551         [nopush,nopull] NET_API_STATUS NetLocalGroupAdd(
1552                 [in] string server_name,
1553                 [in] uint32 level,
1554                 [in] uint8 *buffer,
1555                 [out,ref] uint32 *parm_err
1556                 );
1557
1558         /*******************************************/
1559         /* NetLocalGroupDel                        */
1560         /*******************************************/
1561
1562         [nopush,nopull] NET_API_STATUS NetLocalGroupDel(
1563                 [in] string server_name,
1564                 [in] string group_name
1565                 );
1566
1567         /*******************************************/
1568         /* NetLocalGroupGetInfo                    */
1569         /*******************************************/
1570
1571         [nopush,nopull] NET_API_STATUS NetLocalGroupGetInfo(
1572                 [in] string server_name,
1573                 [in] string group_name,
1574                 [in] uint32 level,
1575                 [out,ref] uint8 **buffer
1576                 );
1577
1578         /*******************************************/
1579         /* NetLocalGroupSetInfo                    */
1580         /*******************************************/
1581
1582         [nopush,nopull] NET_API_STATUS NetLocalGroupSetInfo(
1583                 [in] string server_name,
1584                 [in] string group_name,
1585                 [in] uint32 level,
1586                 [in,ref] uint8 *buffer,
1587                 [out,ref] uint32 *parm_err
1588                 );
1589
1590         /*******************************************/
1591         /* NetLocalGroupEnum                       */
1592         /*******************************************/
1593
1594         [nopush,nopull] NET_API_STATUS NetLocalGroupEnum(
1595                 [in] string server_name,
1596                 [in] uint32 level,
1597                 [out,ref] uint8 **buffer,
1598                 [in] uint32 prefmaxlen,
1599                 [out,ref] uint32 *entries_read,
1600                 [out,ref] uint32 *total_entries,
1601                 [in,out,ref] uint32 *resume_handle
1602                 );
1603
1604         /*******************************************/
1605         /* NetLocalGroupAddMembers                 */
1606         /*******************************************/
1607
1608         typedef enum {
1609                 SidTypeUser             = 1,
1610                 SidTypeGroup            = 2,
1611                 SidTypeDomain           = 3,
1612                 SidTypeAlias            = 4,
1613                 SidTypeWellKnownGroup   = 5,
1614                 SidTypeDeletedAccount   = 6,
1615                 SidTypeInvalid          = 7,
1616                 SidTypeUnknown          = 8,
1617                 SidTypeComputer         = 9,
1618                 SidTypeLabel            = 10
1619         } SID_NAME_USE;
1620
1621         typedef struct {
1622                 domsid *lgrmi0_sid;
1623         } LOCALGROUP_MEMBERS_INFO_0;
1624
1625         typedef struct {
1626                 domsid *lgrmi1_sid;
1627                 SID_NAME_USE lgrmi1_sidusage;
1628                 string lgrmi1_name;
1629         } LOCALGROUP_MEMBERS_INFO_1;
1630
1631         typedef struct {
1632                 domsid *lgrmi2_sid;
1633                 SID_NAME_USE lgrmi2_sidusage;
1634                 string lgrmi2_domainandname;
1635         } LOCALGROUP_MEMBERS_INFO_2;
1636
1637         typedef struct {
1638                 string lgrmi3_domainandname;
1639         } LOCALGROUP_MEMBERS_INFO_3;
1640
1641         [nopush,nopull] NET_API_STATUS NetLocalGroupAddMembers(
1642                 [in] string server_name,
1643                 [in] string group_name,
1644                 [in] uint32 level,
1645                 [in] uint8 *buffer,
1646                 [in] uint32 total_entries
1647                 );
1648
1649         /*******************************************/
1650         /* NetLocalGroupDelMembers                 */
1651         /*******************************************/
1652
1653         [nopush,nopull] NET_API_STATUS NetLocalGroupDelMembers(
1654                 [in] string server_name,
1655                 [in] string group_name,
1656                 [in] uint32 level,
1657                 [in] uint8 *buffer,
1658                 [in] uint32 total_entries
1659                 );
1660
1661         /*******************************************/
1662         /* NetLocalGroupGetMembers                 */
1663         /*******************************************/
1664
1665         [nopush,nopull] NET_API_STATUS NetLocalGroupGetMembers(
1666                 [in] string server_name,
1667                 [in] string local_group_name,
1668                 [in] uint32 level,
1669                 [out] uint8 **buffer,
1670                 [in] uint32 prefmaxlen,
1671                 [out] uint32 *entries_read,
1672                 [out] uint32 *total_entries,
1673                 [in,out] uint32 *resume_handle
1674                 );
1675
1676         /*******************************************/
1677         /* NetLocalGroupSetMembers                 */
1678         /*******************************************/
1679
1680         [nopush,nopull] NET_API_STATUS NetLocalGroupSetMembers(
1681                 [in] string server_name,
1682                 [in] string group_name,
1683                 [in] uint32 level,
1684                 [in] uint8 *buffer,
1685                 [in] uint32 total_entries
1686                 );
1687
1688         /*******************************************/
1689         /* NetRemoteTOD                            */
1690         /*******************************************/
1691
1692         typedef struct {
1693                 uint32 tod_elapsedt;
1694                 uint32 tod_msecs;
1695                 uint32 tod_hours;
1696                 uint32 tod_mins;
1697                 uint32 tod_secs;
1698                 uint32 tod_hunds;
1699                 int32 tod_timezone;
1700                 uint32 tod_tinterval;
1701                 uint32 tod_day;
1702                 uint32 tod_month;
1703                 uint32 tod_year;
1704                 uint32 tod_weekday;
1705         } TIME_OF_DAY_INFO;
1706
1707         [nopush,nopull] NET_API_STATUS NetRemoteTOD(
1708                 [in] string server_name,
1709                 [out,ref] uint8 **buffer
1710                 );
1711
1712         /*******************************************/
1713         /* NetShareAdd                             */
1714         /*******************************************/
1715
1716         typedef struct {
1717                 string shi0_netname;
1718         } SHARE_INFO_0;
1719
1720         typedef struct {
1721                 string shi1_netname;
1722                 uint32 shi1_type;
1723                 string shi1_remark;
1724         } SHARE_INFO_1;
1725
1726         typedef struct {
1727                 string shi2_netname;
1728                 uint32 shi2_type;
1729                 string shi2_remark;
1730                 uint32 shi2_permissions;
1731                 uint32 shi2_max_uses;
1732                 uint32 shi2_current_uses;
1733                 string shi2_path;
1734                 string shi2_passwd;
1735         } SHARE_INFO_2;
1736
1737         typedef struct {
1738                 string shi501_netname;
1739                 uint32 shi501_type;
1740                 string shi501_remark;
1741                 uint32 shi501_flags;
1742         } SHARE_INFO_501;
1743
1744         typedef struct {
1745                 string shi1004_remark;
1746         } SHARE_INFO_1004;
1747
1748         const int CSC_MASK = 0x30;
1749
1750         typedef [public,bitmap32bit] bitmap {
1751                 SHI1005_FLAGS_DFS                               = 0x01,
1752                 SHI1005_FLAGS_DFS_ROOT                          = 0x02,
1753                 CSC_CACHE_MANUAL_REINT                          = 0x00,
1754                 CSC_CACHE_AUTO_REINT                            = 0x10,
1755                 CSC_CACHE_VDO                                   = 0x20,
1756                 CSC_CACHE_NONE                                  = 0x30,
1757                 SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS          = 0x0100,
1758                 SHI1005_FLAGS_FORCE_SHARED_DELETE               = 0x0200,
1759                 SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING           = 0x0400,
1760                 SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM       = 0x0800
1761         } SHARE_INFO_1005_FLAGS;
1762
1763         typedef struct {
1764                 SHARE_INFO_1005_FLAGS shi1005_flags;
1765         } SHARE_INFO_1005;
1766
1767         typedef struct {
1768                 uint32 shi1006_max_uses;
1769         } SHARE_INFO_1006;
1770
1771         [nopush,nopull] NET_API_STATUS NetShareAdd(
1772                 [in] string server_name,
1773                 [in] uint32 level,
1774                 [in] uint8 *buffer,
1775                 [out] uint32 *parm_err
1776                 );
1777
1778         /*******************************************/
1779         /* NetShareDel                             */
1780         /*******************************************/
1781
1782         [nopush,nopull] NET_API_STATUS NetShareDel(
1783                 [in] string server_name,
1784                 [in] string net_name,
1785                 [in] uint32 reserved
1786                 );
1787
1788         /*******************************************/
1789         /* NetShareEnum                            */
1790         /*******************************************/
1791
1792         [nopush,nopull] NET_API_STATUS NetShareEnum(
1793                 [in] string server_name,
1794                 [in] uint32 level,
1795                 [out] uint8 **buffer,
1796                 [in] uint32 prefmaxlen,
1797                 [out] uint32 *entries_read,
1798                 [out] uint32 *total_entries,
1799                 [in,out] uint32 *resume_handle
1800                 );
1801
1802         /*******************************************/
1803         /* NetShareGetInfo                         */
1804         /*******************************************/
1805
1806         [nopush,nopull] NET_API_STATUS NetShareGetInfo(
1807                 [in] string server_name,
1808                 [in] string net_name,
1809                 [in] uint32 level,
1810                 [out] uint8 **buffer
1811                 );
1812
1813         /*******************************************/
1814         /* NetShareSetInfo                         */
1815         /*******************************************/
1816
1817         [nopush,nopull] NET_API_STATUS NetShareSetInfo(
1818                 [in] string server_name,
1819                 [in] string net_name,
1820                 [in] uint32 level,
1821                 [in] uint8 *buffer,
1822                 [out] uint32 *parm_err
1823                 );
1824
1825         /*******************************************/
1826         /* NetFileClose                            */
1827         /*******************************************/
1828
1829         [nopush,nopull] NET_API_STATUS NetFileClose(
1830                 [in] string server_name,
1831                 [in] uint32 fileid
1832                 );
1833
1834         /*******************************************/
1835         /* NetFileGetInfo                          */
1836         /*******************************************/
1837
1838         typedef struct {
1839                 uint32 fi2_id;
1840         } FILE_INFO_2;
1841
1842         typedef struct {
1843                 uint32 fi3_id;
1844                 uint32 fi3_permissions;
1845                 uint32 fi3_num_locks;
1846                 string fi3_pathname;
1847                 string fi3_username;
1848         } FILE_INFO_3;
1849
1850         [nopush,nopull] NET_API_STATUS NetFileGetInfo(
1851                 [in] string server_name,
1852                 [in] uint32 fileid,
1853                 [in] uint32 level,
1854                 [out] uint8 **buffer
1855                 );
1856
1857         /*******************************************/
1858         /* NetFileEnum                             */
1859         /*******************************************/
1860
1861         [nopush,nopull] NET_API_STATUS NetFileEnum(
1862                 [in] string server_name,
1863                 [in] string base_path,
1864                 [in] string user_name,
1865                 [in] uint32 level,
1866                 [out] uint8 **buffer,
1867                 [in] uint32 prefmaxlen,
1868                 [out] uint32 *entries_read,
1869                 [out] uint32 *total_entries,
1870                 [in,out] uint32 *resume_handle
1871                 );
1872
1873         /*******************************************/
1874         /* NetShutdownInit                         */
1875         /*******************************************/
1876
1877         [nopush,nopull] NET_API_STATUS NetShutdownInit(
1878                 [in] string server_name,
1879                 [in] string message,
1880                 [in] uint32 timeout,
1881                 [in] uint8 force_apps,
1882                 [in] uint8 do_reboot
1883         );
1884
1885         /*******************************************/
1886         /* NetShutdownAbort                        */
1887         /*******************************************/
1888
1889         [nopush,nopull] NET_API_STATUS NetShutdownAbort(
1890                 [in] string server_name
1891         );
1892
1893         /*******************************************/
1894         /* I_NetLogonControl                       */
1895         /*******************************************/
1896
1897         typedef struct {
1898                 uint32 netlog1_flags;
1899                 NET_API_STATUS netlog1_pdc_connection_status;
1900         } NETLOGON_INFO_1;
1901
1902         typedef struct {
1903                 uint32 netlog2_flags;
1904                 NET_API_STATUS netlog2_pdc_connection_status;
1905                 string netlog2_trusted_dc_name;
1906                 NET_API_STATUS netlog2_tc_connection_status;
1907         } NETLOGON_INFO_2;
1908
1909         typedef struct {
1910                 uint32 netlog1_flags;
1911                 uint32 netlog3_logon_attempts;
1912                 uint32 netlog3_reserved1;
1913                 uint32 netlog3_reserved2;
1914                 uint32 netlog3_reserved3;
1915                 uint32 netlog3_reserved4;
1916                 uint32 netlog3_reserved5;
1917         } NETLOGON_INFO_3;
1918
1919         typedef struct {
1920                 string netlog4_trusted_dc_name;
1921                 string netlog4_trusted_domain_name;
1922         } NETLOGON_INFO_4;
1923
1924         [nopush,nopull] NET_API_STATUS I_NetLogonControl(
1925                 [in] string server_name,
1926                 [in] uint32 function_code,
1927                 [in] uint32 query_level,
1928                 [out,ref] uint8 **buffer
1929         );
1930
1931         /*******************************************/
1932         /* I_NetLogonControl2                      */
1933         /*******************************************/
1934
1935         [nopush,nopull] NET_API_STATUS I_NetLogonControl2(
1936                 [in] string server_name,
1937                 [in] uint32 function_code,
1938                 [in] uint32 query_level,
1939                 [in,unique] uint8 *data,
1940                 [out,ref] uint8 **buffer
1941         );
1942 }