Add NetWkstaGetInfo.
[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         /* NetWkstaGetInfo                         */
781         /*******************************************/
782
783         [public] typedef struct {
784                 uint32 wki100_platform_id;
785                 string wki100_computername;
786                 string wki100_langroup;
787                 uint32 wki100_ver_major;
788                 uint32 wki100_ver_minor;
789         } WKSTA_INFO_100;
790
791         [public] typedef struct {
792                 uint32 wki101_platform_id;
793                 string wki101_computername;
794                 string wki101_langroup;
795                 uint32 wki101_ver_major;
796                 uint32 wki101_ver_minor;
797                 string wki101_lanroot;
798         } WKSTA_INFO_101;
799
800         [public] typedef struct {
801                 uint32 wki102_platform_id;
802                 string wki102_computername;
803                 string wki102_langroup;
804                 uint32 wki102_ver_major;
805                 uint32 wki102_ver_minor;
806                 string wki102_lanroot;
807                 uint32 wki102_logged_on_users;
808         } WKSTA_INFO_102;
809
810         [nopush,nopull] NET_API_STATUS NetWkstaGetInfo(
811                 [in,unique] string *server_name,
812                 [in] uint32 level,
813                 [out] uint8 **buffer
814                 );
815
816         /*******************************************/
817         /* NetGetDCName                            */
818         /*******************************************/
819
820         [nopush,nopull] NET_API_STATUS NetGetDCName(
821                 [in,unique] string *server_name,
822                 [in,unique] string *domain_name,
823                 [out] uint8 **buffer
824                 );
825
826         /*******************************************/
827         /* NetGetAnyDCName                         */
828         /*******************************************/
829
830         [nopush,nopull] NET_API_STATUS NetGetAnyDCName(
831                 [in,unique] string *server_name,
832                 [in,unique] string *domain_name,
833                 [out] uint8 **buffer
834                 );
835
836         /*******************************************/
837         /* DsGetDcName                             */
838         /*******************************************/
839
840         [public] typedef [v1_enum] enum {
841                 DS_PDC_FLAG                     = 0x00000001,
842                 DS_GC_FLAG                      = 0x00000004,
843                 DS_LDAP_FLAG                    = 0x00000008,
844                 DS_DS_FLAG                      = 0x00000010,
845                 DS_KDC_FLAG                     = 0x00000020,
846                 DS_TIMESERV_FLAG                = 0x00000040,
847                 DS_CLOSEST_FLAG                 = 0x00000080,
848                 DS_WRITABLE_FLAG                = 0x00000100,
849                 DS_GOOD_TIMESERV_FLAG           = 0x00000200,
850                 DS_NDNC_FLAG                    = 0x00000400,
851                 DS_SELECT_SECRET_DOMAIN_6_FLAG  = 0x00000800,
852                 DS_FULL_SECRET_DOMAIN_6_FLAG    = 0x00001000,
853                 DS_DNS_CONTROLLER_FLAG          = 0x20000000,
854                 DS_DNS_DOMAIN_FLAG              = 0x40000000,
855                 DS_DNS_FOREST_FLAG              = 0x80000000
856         } DOMAIN_CONTROLLER_INFO_FLAGS;
857
858         [public] typedef struct {
859                 string domain_controller_name;
860                 string domain_controller_address;
861                 uint32 domain_controller_address_type;
862                 GUID domain_guid;
863                 string domain_name;
864                 string dns_forest_name;
865                 DOMAIN_CONTROLLER_INFO_FLAGS flags;
866                 string dc_site_name;
867                 string client_site_name;
868         } DOMAIN_CONTROLLER_INFO;
869
870         [nopush,nopull] NET_API_STATUS DsGetDcName(
871                 [in,unique] string *server_name,
872                 [in,ref] string *domain_name,
873                 [in,unique] GUID *domain_guid,
874                 [in,unique] string *site_name,
875                 [in] uint32 flags,
876                 [out,ref] DOMAIN_CONTROLLER_INFO **dc_info
877                 );
878
879         /*******************************************/
880         /* NetUserAdd                              */
881         /*******************************************/
882
883         [public] typedef struct {
884                 string usri0_name;
885         } USER_INFO_0;
886
887         /* priv */
888         const int USER_PRIV_GUEST       = 0;
889         const int USER_PRIV_USER        = 1;
890         const int USER_PRIV_ADMIN       = 2;
891
892         [public] typedef struct {
893                 string usri1_name;
894                 string usri1_password;
895                 uint32 usri1_password_age;
896                 uint32 usri1_priv;
897                 string usri1_home_dir;
898                 string usri1_comment;
899                 uint32 usri1_flags;
900                 string usri1_script_path;
901         } USER_INFO_1;
902
903         /* auth_flags in USER_INFO_2 */
904
905         const int AF_OP_PRINT           = 0x1;
906         const int AF_OP_COMM            = 0x2;
907         const int AF_OP_SERVER          = 0x4;
908         const int AF_OP_ACCOUNTS        = 0x8;
909         const int AF_SETTABLE_BITS      = (AF_OP_PRINT | AF_OP_COMM | AF_OP_SERVER | AF_OP_ACCOUNTS);
910
911         const int USER_MAXSTORAGE_UNLIMITED = (uint32_t)-1L;
912
913         [public] typedef struct {
914                 string usri2_name;
915                 string usri2_password;
916                 uint32 usri2_password_age;
917                 uint32 usri2_priv;
918                 string usri2_home_dir;
919                 string usri2_comment;
920                 uint32 usri2_flags;
921                 string usri2_script_path;
922                 uint32 usri2_auth_flags;
923                 string usri2_full_name;
924                 string usri2_usr_comment;
925                 string usri2_parms;
926                 string usri2_workstations;
927                 uint32 usri2_last_logon;
928                 uint32 usri2_last_logoff;
929                 uint32 usri2_acct_expires;
930                 uint32 usri2_max_storage;
931                 uint32 usri2_units_per_week;
932                 uint8 *usri2_logon_hours;
933                 uint32 usri2_bad_pw_count;
934                 uint32 usri2_num_logons;
935                 string usri2_logon_server;
936                 uint32 usri2_country_code;
937                 uint32 usri2_code_page;
938         } USER_INFO_2;
939
940         [public] typedef struct {
941                 string usri3_name;
942                 uint32 usri3_password_age;
943                 uint32 usri3_priv;
944                 string usri3_home_dir;
945                 string usri3_comment;
946                 uint32 usri3_flags;
947                 string usri3_script_path;
948                 uint32 usri3_auth_flags;
949                 string usri3_full_name;
950                 string usri3_usr_comment;
951                 string usri3_parms;
952                 string usri3_workstations;
953                 uint32 usri3_last_logon;
954                 uint32 usri3_last_logoff;
955                 uint32 usri3_acct_expires;
956                 uint32 usri3_max_storage;
957                 uint32 usri3_units_per_week;
958                 uint8 *usri3_logon_hours;
959                 uint32 usri3_bad_pw_count;
960                 uint32 usri3_num_logons;
961                 string usri3_logon_server;
962                 uint32 usri3_country_code;
963                 uint32 usri3_code_page;
964                 uint32 usri3_user_id;
965                 uint32 usri3_primary_group_id;
966                 string usri3_profile;
967                 string usri3_home_dir_drive;
968                 uint32 usri3_password_expired;
969         } USER_INFO_3;
970
971         [public] typedef struct {
972                 string usri4_name;
973                 string usri4_password;
974                 uint32 usri4_password_age;
975                 uint32 usri4_priv;
976                 string usri4_home_dir;
977                 string usri4_comment;
978                 uint32 usri4_flags;
979                 string usri4_script_path;
980                 uint32 usri4_auth_flags;
981                 string usri4_full_name;
982                 string usri4_usr_comment;
983                 string usri4_parms;
984                 string usri4_workstations;
985                 uint32 usri4_last_logon;
986                 uint32 usri4_last_logoff;
987                 uint32 usri4_acct_expires;
988                 uint32 usri4_max_storage;
989                 uint32 usri4_units_per_week;
990                 uint8 *usri4_logon_hours;
991                 uint32 usri4_bad_pw_count;
992                 uint32 usri4_num_logons;
993                 string usri4_logon_server;
994                 uint32 usri4_country_code;
995                 uint32 usri4_code_page;
996                 domsid *usri4_user_sid;
997                 uint32 usri4_primary_group_id;
998                 string usri4_profile;
999                 string usri4_home_dir_drive;
1000                 uint32 usri4_password_expired;
1001         } USER_INFO_4;
1002
1003         [public] typedef struct {
1004                 string usri10_name;
1005                 string usri10_comment;
1006                 string usri10_usr_comment;
1007                 string usri10_full_name;
1008         } USER_INFO_10;
1009
1010         [public] typedef struct {
1011                 string usri11_name;
1012                 string usri11_comment;
1013                 string usri11_usr_comment;
1014                 string usri11_full_name;
1015                 uint32 usri11_priv;
1016                 uint32 usri11_auth_flags;
1017                 uint32 usri11_password_age;
1018                 string usri11_home_dir;
1019                 string usri11_parms;
1020                 uint32 usri11_last_logon;
1021                 uint32 usri11_last_logoff;
1022                 uint32 usri11_bad_pw_count;
1023                 uint32 usri11_num_logons;
1024                 string usri11_logon_server;
1025                 uint32 usri11_country_code;
1026                 string usri11_workstations;
1027                 uint32 usri11_max_storage;
1028                 uint32 usri11_units_per_week;
1029                 uint8 *usri11_logon_hours;
1030                 uint32 usri11_code_page;
1031         } USER_INFO_11;
1032
1033         [public] typedef struct {
1034                 string usri20_name;
1035                 string usri20_full_name;
1036                 string usri20_comment;
1037                 uint32 usri20_flags;
1038                 uint32 usri20_user_id;
1039         } USER_INFO_20;
1040
1041         const int ENCRYPTED_PWLEN = 16;
1042
1043         [public] typedef struct {
1044                 uint8 usri21_password[ENCRYPTED_PWLEN];
1045         } USER_INFO_21;
1046
1047         [public] typedef struct {
1048                 string usri22_name;
1049                 uint8 usri22_password[ENCRYPTED_PWLEN];
1050                 uint32 usri22_password_age;
1051                 uint32 usri22_priv;
1052                 string usri22_home_dir;
1053                 string usri22_comment;
1054                 uint32 usri22_flags;
1055                 uint32 usri22_script_path;
1056                 uint32 usri22_auth_flags;
1057                 string usri22_full_name;
1058                 string usri22_usr_comment;
1059                 string usri22_parms;
1060                 string usri22_workstations;
1061                 uint32 usri22_last_logon;
1062                 uint32 usri22_last_logoff;
1063                 uint32 usri22_acct_expires;
1064                 uint32 usri22_max_storage;
1065                 uint32 usri22_units_per_week;
1066                 uint8 *usri22_logon_hours;
1067                 uint32 usri22_bad_pw_count;
1068                 uint32 usri22_num_logons;
1069                 string usri22_logon_server;
1070                 uint32 usri22_country_code;
1071                 uint32 usri22_code_page;
1072         } USER_INFO_22;
1073
1074         [public] typedef struct {
1075                 string usri23_name;
1076                 string usri23_full_name;
1077                 string usri23_comment;
1078                 uint32 usri23_flags;
1079                 domsid *usri23_user_sid;
1080         } USER_INFO_23;
1081
1082         [public] typedef struct {
1083                 string usri1003_password;
1084         } USER_INFO_1003;
1085
1086         [public] typedef struct {
1087                 uint32 usri1005_priv;
1088         } USER_INFO_1005;
1089
1090         [public] typedef struct {
1091                 string usri1006_home_dir;
1092         } USER_INFO_1006;
1093
1094         [public] typedef struct {
1095                 string usri1007_comment;
1096         } USER_INFO_1007;
1097
1098         [public] typedef struct {
1099                 uint32 usri1008_flags;
1100         } USER_INFO_1008;
1101
1102         [public] typedef struct {
1103                 string usri1009_script_path;
1104         } USER_INFO_1009;
1105
1106         [public] typedef struct {
1107                 uint32 usri1010_auth_flags;
1108         } USER_INFO_1010;
1109
1110         [public] typedef struct {
1111                 string usri1011_full_name;
1112         } USER_INFO_1011;
1113
1114         [public] typedef struct {
1115                 string usri1012_usr_comment;
1116         } USER_INFO_1012;
1117
1118         [public] typedef struct {
1119                 string usri1013_parms;
1120         } USER_INFO_1013;
1121
1122         [public] typedef struct {
1123                 string usri1014_workstations;
1124         } USER_INFO_1014;
1125
1126         [public] typedef struct {
1127                 uint32 usri1017_acct_expires;
1128         } USER_INFO_1017;
1129
1130         [public] typedef struct {
1131                 uint32 usri1018_max_storage;
1132         } USER_INFO_1018;
1133
1134         [public] typedef struct {
1135                 uint32 usri1020_units_per_week;
1136                 uint8 *usri1020_logon_hours;
1137         } USER_INFO_1020;
1138
1139         [public] typedef struct {
1140                 string usri1023_logon_server;
1141         } USER_INFO_1023;
1142
1143         [public] typedef struct {
1144                 uint32 usri1024_country_code;
1145         } USER_INFO_1024;
1146
1147         [public] typedef struct {
1148                 uint32 usri1025_code_page;
1149         } USER_INFO_1025;
1150
1151         [public] typedef struct {
1152                 uint32 usri1051_primary_group_id;
1153         } USER_INFO_1051;
1154
1155         [public] typedef struct {
1156                 string usri1052_profile;
1157         } USER_INFO_1052;
1158
1159         [public] typedef struct {
1160                 string usri1053_home_dir_drive;
1161         } USER_INFO_1053;
1162
1163         [public] typedef struct {
1164                 string usriX_name;
1165                 string usriX_password;
1166                 uint32 usriX_password_age;
1167                 uint32 usriX_priv;
1168                 string usriX_home_dir;
1169                 string usriX_comment;
1170                 uint32 usriX_flags;
1171                 string usriX_script_path;
1172                 uint32 usriX_auth_flags;
1173                 string usriX_full_name;
1174                 string usriX_usr_comment;
1175                 string usriX_parms;
1176                 string usriX_workstations;
1177                 uint32 usriX_last_logon;
1178                 uint32 usriX_last_logoff;
1179                 uint32 usriX_acct_expires;
1180                 uint32 usriX_max_storage;
1181                 uint32 usriX_units_per_week;
1182                 uint8 *usriX_logon_hours;
1183                 uint32 usriX_bad_pw_count;
1184                 uint32 usriX_num_logons;
1185                 string usriX_logon_server;
1186                 uint32 usriX_country_code;
1187                 uint32 usriX_code_page;
1188                 string usriX_profile;
1189                 string usriX_home_dir_drive;
1190                 uint32 usriX_user_id;
1191                 uint32 usriX_primary_group_id;
1192                 uint32 usriX_password_expired;
1193         } USER_INFO_X;
1194
1195         [nopush,nopull] NET_API_STATUS NetUserAdd(
1196                 [in,unique] string *server_name,
1197                 [in] uint32 level,
1198                 [in,ref] uint8 *buffer,
1199                 [out,ref] uint32 *parm_error
1200                 );
1201
1202         /*******************************************/
1203         /* NetUserDel                              */
1204         /*******************************************/
1205
1206         [nopush,nopull] NET_API_STATUS NetUserDel(
1207                 [in,unique] string *server_name,
1208                 [in,ref] string *user_name
1209                 );
1210
1211         /*******************************************/
1212         /* NetUserEnum                             */
1213         /*******************************************/
1214
1215         const int FILTER_TEMP_DUPLICATE_ACCOUNT = 0x0001;
1216         const int FILTER_NORMAL_ACCOUNT = 0x0002;
1217         const int FILTER_INTERDOMAIN_TRUST_ACCOUNT = 0x0008;
1218         const int FILTER_WORKSTATION_TRUST_ACCOUNT = 0x0010;
1219         const int FILTER_SERVER_TRUST_ACCOUNT = 0x0020;
1220
1221         [nopush,nopull] NET_API_STATUS NetUserEnum(
1222                 [in,unique] string *server_name,
1223                 [in] uint32 level,
1224                 [in] uint32 filter,
1225                 [out,ref] uint8 **buffer,
1226                 [in] uint32 prefmaxlen,
1227                 [out,ref] uint32 *entries_read,
1228                 [out,ref] uint32 *total_entries,
1229                 [in,out,ref] uint32 *resume_handle
1230                 );
1231
1232         /*******************************************/
1233         /* NetUserChangePassword                   */
1234         /*******************************************/
1235
1236         [nopush,nopull] NET_API_STATUS NetUserChangePassword(
1237                 [in] string domain_name,
1238                 [in] string user_name,
1239                 [in] string old_password,
1240                 [in] string new_password
1241                 );
1242
1243         /*******************************************/
1244         /* NetUserGetInfo                          */
1245         /*******************************************/
1246
1247         [nopush,nopull] NET_API_STATUS NetUserGetInfo(
1248                 [in] string server_name,
1249                 [in] string user_name,
1250                 [in] uint32 level,
1251                 [out] uint8 **buffer
1252                 );
1253
1254         /*******************************************/
1255         /* NetUserSetInfo                          */
1256         /*******************************************/
1257
1258         [nopush,nopull] NET_API_STATUS NetUserSetInfo(
1259                 [in] string server_name,
1260                 [in] string user_name,
1261                 [in] uint32 level,
1262                 [in] uint8 *buffer,
1263                 [out] uint32 *parm_err
1264                 );
1265
1266         /*******************************************/
1267         /* NetUserGetGroups                        */
1268         /*******************************************/
1269
1270         [public] typedef struct {
1271                 string grui0_name;
1272         } GROUP_USERS_INFO_0;
1273
1274         [public] typedef struct {
1275                 string grui1_name;
1276                 uint32 grui1_attributes;
1277         } GROUP_USERS_INFO_1;
1278
1279         [nopush,nopull] NET_API_STATUS NetUserGetGroups(
1280                 [in] string server_name,
1281                 [in] string user_name,
1282                 [in] uint32 level,
1283                 [out] uint8 **buffer,
1284                 [in] uint32 prefmaxlen,
1285                 [out,ref] uint32 *entries_read,
1286                 [out,ref] uint32 *total_entries
1287                 );
1288
1289         /*******************************************/
1290         /* NetUserSetGroups                        */
1291         /*******************************************/
1292
1293         [nopush,nopull] NET_API_STATUS NetUserSetGroups(
1294                 [in] string server_name,
1295                 [in] string user_name,
1296                 [in] uint32 level,
1297                 [in] uint8 *buffer,
1298                 [in] uint32 num_entries
1299                 );
1300
1301         /*******************************************/
1302         /* NetUserGetLocalGroups                   */
1303         /*******************************************/
1304
1305         const int LG_INCLUDE_INDIRECT = 0x0001;
1306
1307         typedef struct {
1308                 string lgrui0_name;
1309         } LOCALGROUP_USERS_INFO_0;
1310
1311         [nopush,nopull] NET_API_STATUS NetUserGetLocalGroups(
1312                 [in] string server_name,
1313                 [in] string user_name,
1314                 [in] uint32 level,
1315                 [in] uint32 flags,
1316                 [out] uint8 **buffer,
1317                 [in] uint32 prefmaxlen,
1318                 [out,ref] uint32 *entries_read,
1319                 [out,ref] uint32 *total_entries
1320                 );
1321
1322         /*******************************************/
1323         /* NetUserModalsGet                        */
1324         /*******************************************/
1325
1326         const int TIMEQ_FOREVER = (uint32_t)-1L;
1327
1328         typedef struct {
1329                 uint32 usrmod0_min_passwd_len;
1330                 uint32 usrmod0_max_passwd_age;
1331                 uint32 usrmod0_min_passwd_age;
1332                 uint32 usrmod0_force_logoff;
1333                 uint32 usrmod0_password_hist_len;
1334         } USER_MODALS_INFO_0;
1335
1336         typedef struct {
1337                 uint32 usrmod1_role;
1338                 string usrmod1_primary;
1339         } USER_MODALS_INFO_1;
1340
1341         typedef struct {
1342                 string usrmod2_domain_name;
1343                 domsid *usrmod2_domain_id;
1344         } USER_MODALS_INFO_2;
1345
1346         typedef struct {
1347                 uint32 usrmod3_lockout_duration;
1348                 uint32 usrmod3_lockout_observation_window;
1349                 uint32 usrmod3_lockout_threshold;
1350         } USER_MODALS_INFO_3;
1351
1352         typedef struct {
1353                 uint32 usrmod1001_min_passwd_len;
1354         } USER_MODALS_INFO_1001;
1355
1356         typedef struct {
1357                 uint32 usrmod1002_max_passwd_age;
1358         } USER_MODALS_INFO_1002;
1359
1360         typedef struct {
1361                 uint32 usrmod1003_min_passwd_age;
1362         } USER_MODALS_INFO_1003;
1363
1364         typedef struct {
1365                 uint32 usrmod1004_force_logoff;
1366         } USER_MODALS_INFO_1004;
1367
1368         typedef struct {
1369                 uint32 usrmod1005_password_hist_len;
1370         } USER_MODALS_INFO_1005;
1371
1372         typedef struct {
1373                 uint32 usrmod1006_role;
1374         } USER_MODALS_INFO_1006;
1375
1376         typedef struct {
1377                 string usrmod1007_primary;
1378         } USER_MODALS_INFO_1007;
1379
1380         [nopush,nopull] NET_API_STATUS NetUserModalsGet(
1381                 [in] string server_name,
1382                 [in] uint32 level,
1383                 [out,ref] uint8 **buffer
1384                 );
1385
1386         /*******************************************/
1387         /* NetUserModalsSet                        */
1388         /*******************************************/
1389
1390         [nopush,nopull] NET_API_STATUS NetUserModalsSet(
1391                 [in] string server_name,
1392                 [in] uint32 level,
1393                 [in] uint8 *buffer,
1394                 [out,ref] uint32 *parm_err
1395                 );
1396
1397         /*******************************************/
1398         /* NetQueryDisplayInformation              */
1399         /*******************************************/
1400
1401         [public] typedef struct {
1402                 string usri1_name;
1403                 string usri1_comment;
1404                 uint32 usri1_flags;
1405                 string usri1_full_name;
1406                 uint32 usri1_user_id;
1407                 uint32 usri1_next_index;
1408         } NET_DISPLAY_USER;
1409
1410         [public] typedef struct {
1411                 string usri2_name;
1412                 string usri2_comment;
1413                 uint32 usri2_flags;
1414                 uint32 usri2_user_id;
1415                 uint32 usri2_next_index;
1416         } NET_DISPLAY_MACHINE;
1417
1418         [public] typedef struct {
1419                 string grpi3_name;
1420                 string grpi3_comment;
1421                 uint32 grpi3_group_id;
1422                 uint32 grpi3_attributes;
1423                 uint32 grpi3_next_index;
1424         } NET_DISPLAY_GROUP;
1425
1426         [nopush,nopull] NET_API_STATUS NetQueryDisplayInformation(
1427                 [in,unique] string *server_name,
1428                 [in] uint32 level,
1429                 [in] uint32 idx,
1430                 [in] uint32 entries_requested,
1431                 [in] uint32 prefmaxlen,
1432                 [out,ref] uint32 *entries_read,
1433                 [out,ref,noprint] void **buffer
1434                 );
1435
1436         /*******************************************/
1437         /* NetGroupAdd                             */
1438         /*******************************************/
1439
1440         typedef struct {
1441                 string grpi0_name;
1442         } GROUP_INFO_0;
1443
1444         typedef struct {
1445                 string grpi1_name;
1446                 string grpi1_comment;
1447         } GROUP_INFO_1;
1448
1449         typedef struct {
1450                 string grpi2_name;
1451                 string grpi2_comment;
1452                 uint32 grpi2_group_id;
1453                 uint32 grpi2_attributes;
1454         } GROUP_INFO_2;
1455
1456         typedef struct {
1457                 string grpi3_name;
1458                 string grpi3_comment;
1459                 domsid *grpi3_group_sid;
1460                 uint32 grpi3_attributes;
1461         } GROUP_INFO_3;
1462
1463         typedef struct {
1464                 string grpi1002_comment;
1465         } GROUP_INFO_1002;
1466
1467         typedef struct {
1468                 uint32 grpi1005_attributes;
1469         } GROUP_INFO_1005;
1470
1471         [nopush,nopull] NET_API_STATUS NetGroupAdd(
1472                 [in] string server_name,
1473                 [in] uint32 level,
1474                 [in] uint8 *buffer,
1475                 [out] uint32 *parm_err
1476                 );
1477
1478         /*******************************************/
1479         /* NetGroupDel                             */
1480         /*******************************************/
1481
1482         [nopush,nopull] NET_API_STATUS NetGroupDel(
1483                 [in] string server_name,
1484                 [in] string group_name
1485                 );
1486
1487         /*******************************************/
1488         /* NetGroupEnum                            */
1489         /*******************************************/
1490
1491         [nopush,nopull] NET_API_STATUS NetGroupEnum(
1492                 [in] string server_name,
1493                 [in] uint32 level,
1494                 [out,ref] uint8 **buffer,
1495                 [in] uint32 prefmaxlen,
1496                 [out,ref] uint32 *entries_read,
1497                 [out,ref] uint32 *total_entries,
1498                 [in,out,ref] uint32 *resume_handle
1499                 );
1500
1501         /*******************************************/
1502         /* NetGroupSetInfo                         */
1503         /*******************************************/
1504
1505         [nopush,nopull] NET_API_STATUS NetGroupSetInfo(
1506                 [in] string server_name,
1507                 [in] string group_name,
1508                 [in] uint32 level,
1509                 [in] uint8 *buffer,
1510                 [out] uint32 *parm_err
1511                 );
1512
1513         /*******************************************/
1514         /* NetGroupGetInfo                         */
1515         /*******************************************/
1516
1517         [nopush,nopull] NET_API_STATUS NetGroupGetInfo(
1518                 [in] string server_name,
1519                 [in] string group_name,
1520                 [in] uint32 level,
1521                 [out] uint8 **buffer
1522                 );
1523
1524         /*******************************************/
1525         /* NetGroupAddUser                         */
1526         /*******************************************/
1527
1528         [nopush,nopull] NET_API_STATUS NetGroupAddUser(
1529                 [in] string server_name,
1530                 [in] string group_name,
1531                 [in] string user_name
1532                 );
1533
1534         /*******************************************/
1535         /* NetGroupDelUser                         */
1536         /*******************************************/
1537
1538         [nopush,nopull] NET_API_STATUS NetGroupDelUser(
1539                 [in] string server_name,
1540                 [in] string group_name,
1541                 [in] string user_name
1542                 );
1543
1544         /*******************************************/
1545         /* NetGroupGetUsers                        */
1546         /*******************************************/
1547
1548         [nopush,nopull] NET_API_STATUS NetGroupGetUsers(
1549                 [in] string server_name,
1550                 [in] string group_name,
1551                 [in] uint32 level,
1552                 [out] uint8 **buffer,
1553                 [in] uint32 prefmaxlen,
1554                 [out,ref] uint32 *entries_read,
1555                 [out,ref] uint32 *total_entries,
1556                 [in,out,ref] uint32 *resume_handle
1557                 );
1558
1559         /*******************************************/
1560         /* NetGroupSetUsers                        */
1561         /*******************************************/
1562
1563         [nopush,nopull] NET_API_STATUS NetGroupSetUsers(
1564                 [in] string server_name,
1565                 [in] string group_name,
1566                 [in] uint32 level,
1567                 [in] uint8 *buffer,
1568                 [in] uint32 num_entries
1569                 );
1570
1571         /*******************************************/
1572         /* NetLocalGroupAdd                        */
1573         /*******************************************/
1574
1575         typedef struct {
1576                 string lgrpi0_name;
1577         } LOCALGROUP_INFO_0;
1578
1579         typedef struct {
1580                 string lgrpi1_name;
1581                 string lgrpi1_comment;
1582         } LOCALGROUP_INFO_1;
1583
1584         typedef struct {
1585                 string lgrpi1002_comment;
1586         } LOCALGROUP_INFO_1002;
1587
1588         [nopush,nopull] NET_API_STATUS NetLocalGroupAdd(
1589                 [in] string server_name,
1590                 [in] uint32 level,
1591                 [in] uint8 *buffer,
1592                 [out,ref] uint32 *parm_err
1593                 );
1594
1595         /*******************************************/
1596         /* NetLocalGroupDel                        */
1597         /*******************************************/
1598
1599         [nopush,nopull] NET_API_STATUS NetLocalGroupDel(
1600                 [in] string server_name,
1601                 [in] string group_name
1602                 );
1603
1604         /*******************************************/
1605         /* NetLocalGroupGetInfo                    */
1606         /*******************************************/
1607
1608         [nopush,nopull] NET_API_STATUS NetLocalGroupGetInfo(
1609                 [in] string server_name,
1610                 [in] string group_name,
1611                 [in] uint32 level,
1612                 [out,ref] uint8 **buffer
1613                 );
1614
1615         /*******************************************/
1616         /* NetLocalGroupSetInfo                    */
1617         /*******************************************/
1618
1619         [nopush,nopull] NET_API_STATUS NetLocalGroupSetInfo(
1620                 [in] string server_name,
1621                 [in] string group_name,
1622                 [in] uint32 level,
1623                 [in,ref] uint8 *buffer,
1624                 [out,ref] uint32 *parm_err
1625                 );
1626
1627         /*******************************************/
1628         /* NetLocalGroupEnum                       */
1629         /*******************************************/
1630
1631         [nopush,nopull] NET_API_STATUS NetLocalGroupEnum(
1632                 [in] string server_name,
1633                 [in] uint32 level,
1634                 [out,ref] uint8 **buffer,
1635                 [in] uint32 prefmaxlen,
1636                 [out,ref] uint32 *entries_read,
1637                 [out,ref] uint32 *total_entries,
1638                 [in,out,ref] uint32 *resume_handle
1639                 );
1640
1641         /*******************************************/
1642         /* NetLocalGroupAddMembers                 */
1643         /*******************************************/
1644
1645         typedef enum {
1646                 SidTypeUser             = 1,
1647                 SidTypeGroup            = 2,
1648                 SidTypeDomain           = 3,
1649                 SidTypeAlias            = 4,
1650                 SidTypeWellKnownGroup   = 5,
1651                 SidTypeDeletedAccount   = 6,
1652                 SidTypeInvalid          = 7,
1653                 SidTypeUnknown          = 8,
1654                 SidTypeComputer         = 9,
1655                 SidTypeLabel            = 10
1656         } SID_NAME_USE;
1657
1658         typedef struct {
1659                 domsid *lgrmi0_sid;
1660         } LOCALGROUP_MEMBERS_INFO_0;
1661
1662         typedef struct {
1663                 domsid *lgrmi1_sid;
1664                 SID_NAME_USE lgrmi1_sidusage;
1665                 string lgrmi1_name;
1666         } LOCALGROUP_MEMBERS_INFO_1;
1667
1668         typedef struct {
1669                 domsid *lgrmi2_sid;
1670                 SID_NAME_USE lgrmi2_sidusage;
1671                 string lgrmi2_domainandname;
1672         } LOCALGROUP_MEMBERS_INFO_2;
1673
1674         typedef struct {
1675                 string lgrmi3_domainandname;
1676         } LOCALGROUP_MEMBERS_INFO_3;
1677
1678         [nopush,nopull] NET_API_STATUS NetLocalGroupAddMembers(
1679                 [in] string server_name,
1680                 [in] string group_name,
1681                 [in] uint32 level,
1682                 [in] uint8 *buffer,
1683                 [in] uint32 total_entries
1684                 );
1685
1686         /*******************************************/
1687         /* NetLocalGroupDelMembers                 */
1688         /*******************************************/
1689
1690         [nopush,nopull] NET_API_STATUS NetLocalGroupDelMembers(
1691                 [in] string server_name,
1692                 [in] string group_name,
1693                 [in] uint32 level,
1694                 [in] uint8 *buffer,
1695                 [in] uint32 total_entries
1696                 );
1697
1698         /*******************************************/
1699         /* NetLocalGroupGetMembers                 */
1700         /*******************************************/
1701
1702         [nopush,nopull] NET_API_STATUS NetLocalGroupGetMembers(
1703                 [in] string server_name,
1704                 [in] string local_group_name,
1705                 [in] uint32 level,
1706                 [out] uint8 **buffer,
1707                 [in] uint32 prefmaxlen,
1708                 [out] uint32 *entries_read,
1709                 [out] uint32 *total_entries,
1710                 [in,out] uint32 *resume_handle
1711                 );
1712
1713         /*******************************************/
1714         /* NetLocalGroupSetMembers                 */
1715         /*******************************************/
1716
1717         [nopush,nopull] NET_API_STATUS NetLocalGroupSetMembers(
1718                 [in] string server_name,
1719                 [in] string group_name,
1720                 [in] uint32 level,
1721                 [in] uint8 *buffer,
1722                 [in] uint32 total_entries
1723                 );
1724
1725         /*******************************************/
1726         /* NetRemoteTOD                            */
1727         /*******************************************/
1728
1729         typedef struct {
1730                 uint32 tod_elapsedt;
1731                 uint32 tod_msecs;
1732                 uint32 tod_hours;
1733                 uint32 tod_mins;
1734                 uint32 tod_secs;
1735                 uint32 tod_hunds;
1736                 int32 tod_timezone;
1737                 uint32 tod_tinterval;
1738                 uint32 tod_day;
1739                 uint32 tod_month;
1740                 uint32 tod_year;
1741                 uint32 tod_weekday;
1742         } TIME_OF_DAY_INFO;
1743
1744         [nopush,nopull] NET_API_STATUS NetRemoteTOD(
1745                 [in] string server_name,
1746                 [out,ref] uint8 **buffer
1747                 );
1748
1749         /*******************************************/
1750         /* NetShareAdd                             */
1751         /*******************************************/
1752
1753         typedef struct {
1754                 string shi0_netname;
1755         } SHARE_INFO_0;
1756
1757         typedef struct {
1758                 string shi1_netname;
1759                 uint32 shi1_type;
1760                 string shi1_remark;
1761         } SHARE_INFO_1;
1762
1763         typedef struct {
1764                 string shi2_netname;
1765                 uint32 shi2_type;
1766                 string shi2_remark;
1767                 uint32 shi2_permissions;
1768                 uint32 shi2_max_uses;
1769                 uint32 shi2_current_uses;
1770                 string shi2_path;
1771                 string shi2_passwd;
1772         } SHARE_INFO_2;
1773
1774         typedef struct {
1775                 string shi501_netname;
1776                 uint32 shi501_type;
1777                 string shi501_remark;
1778                 uint32 shi501_flags;
1779         } SHARE_INFO_501;
1780
1781         typedef struct {
1782                 string shi1004_remark;
1783         } SHARE_INFO_1004;
1784
1785         const int CSC_MASK = 0x30;
1786
1787         typedef [public,bitmap32bit] bitmap {
1788                 SHI1005_FLAGS_DFS                               = 0x01,
1789                 SHI1005_FLAGS_DFS_ROOT                          = 0x02,
1790                 CSC_CACHE_MANUAL_REINT                          = 0x00,
1791                 CSC_CACHE_AUTO_REINT                            = 0x10,
1792                 CSC_CACHE_VDO                                   = 0x20,
1793                 CSC_CACHE_NONE                                  = 0x30,
1794                 SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS          = 0x0100,
1795                 SHI1005_FLAGS_FORCE_SHARED_DELETE               = 0x0200,
1796                 SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING           = 0x0400,
1797                 SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM       = 0x0800
1798         } SHARE_INFO_1005_FLAGS;
1799
1800         typedef struct {
1801                 SHARE_INFO_1005_FLAGS shi1005_flags;
1802         } SHARE_INFO_1005;
1803
1804         typedef struct {
1805                 uint32 shi1006_max_uses;
1806         } SHARE_INFO_1006;
1807
1808         [nopush,nopull] NET_API_STATUS NetShareAdd(
1809                 [in] string server_name,
1810                 [in] uint32 level,
1811                 [in] uint8 *buffer,
1812                 [out] uint32 *parm_err
1813                 );
1814
1815         /*******************************************/
1816         /* NetShareDel                             */
1817         /*******************************************/
1818
1819         [nopush,nopull] NET_API_STATUS NetShareDel(
1820                 [in] string server_name,
1821                 [in] string net_name,
1822                 [in] uint32 reserved
1823                 );
1824
1825         /*******************************************/
1826         /* NetShareEnum                            */
1827         /*******************************************/
1828
1829         [nopush,nopull] NET_API_STATUS NetShareEnum(
1830                 [in] string server_name,
1831                 [in] uint32 level,
1832                 [out] uint8 **buffer,
1833                 [in] uint32 prefmaxlen,
1834                 [out] uint32 *entries_read,
1835                 [out] uint32 *total_entries,
1836                 [in,out] uint32 *resume_handle
1837                 );
1838
1839         /*******************************************/
1840         /* NetShareGetInfo                         */
1841         /*******************************************/
1842
1843         [nopush,nopull] NET_API_STATUS NetShareGetInfo(
1844                 [in] string server_name,
1845                 [in] string net_name,
1846                 [in] uint32 level,
1847                 [out] uint8 **buffer
1848                 );
1849
1850         /*******************************************/
1851         /* NetShareSetInfo                         */
1852         /*******************************************/
1853
1854         [nopush,nopull] NET_API_STATUS NetShareSetInfo(
1855                 [in] string server_name,
1856                 [in] string net_name,
1857                 [in] uint32 level,
1858                 [in] uint8 *buffer,
1859                 [out] uint32 *parm_err
1860                 );
1861
1862         /*******************************************/
1863         /* NetFileClose                            */
1864         /*******************************************/
1865
1866         [nopush,nopull] NET_API_STATUS NetFileClose(
1867                 [in] string server_name,
1868                 [in] uint32 fileid
1869                 );
1870
1871         /*******************************************/
1872         /* NetFileGetInfo                          */
1873         /*******************************************/
1874
1875         typedef struct {
1876                 uint32 fi2_id;
1877         } FILE_INFO_2;
1878
1879         typedef struct {
1880                 uint32 fi3_id;
1881                 uint32 fi3_permissions;
1882                 uint32 fi3_num_locks;
1883                 string fi3_pathname;
1884                 string fi3_username;
1885         } FILE_INFO_3;
1886
1887         [nopush,nopull] NET_API_STATUS NetFileGetInfo(
1888                 [in] string server_name,
1889                 [in] uint32 fileid,
1890                 [in] uint32 level,
1891                 [out] uint8 **buffer
1892                 );
1893
1894         /*******************************************/
1895         /* NetFileEnum                             */
1896         /*******************************************/
1897
1898         [nopush,nopull] NET_API_STATUS NetFileEnum(
1899                 [in] string server_name,
1900                 [in] string base_path,
1901                 [in] string user_name,
1902                 [in] uint32 level,
1903                 [out] uint8 **buffer,
1904                 [in] uint32 prefmaxlen,
1905                 [out] uint32 *entries_read,
1906                 [out] uint32 *total_entries,
1907                 [in,out] uint32 *resume_handle
1908                 );
1909
1910         /*******************************************/
1911         /* NetShutdownInit                         */
1912         /*******************************************/
1913
1914         [nopush,nopull] NET_API_STATUS NetShutdownInit(
1915                 [in] string server_name,
1916                 [in] string message,
1917                 [in] uint32 timeout,
1918                 [in] uint8 force_apps,
1919                 [in] uint8 do_reboot
1920         );
1921
1922         /*******************************************/
1923         /* NetShutdownAbort                        */
1924         /*******************************************/
1925
1926         [nopush,nopull] NET_API_STATUS NetShutdownAbort(
1927                 [in] string server_name
1928         );
1929
1930         /*******************************************/
1931         /* I_NetLogonControl                       */
1932         /*******************************************/
1933
1934         typedef struct {
1935                 uint32 netlog1_flags;
1936                 NET_API_STATUS netlog1_pdc_connection_status;
1937         } NETLOGON_INFO_1;
1938
1939         typedef struct {
1940                 uint32 netlog2_flags;
1941                 NET_API_STATUS netlog2_pdc_connection_status;
1942                 string netlog2_trusted_dc_name;
1943                 NET_API_STATUS netlog2_tc_connection_status;
1944         } NETLOGON_INFO_2;
1945
1946         typedef struct {
1947                 uint32 netlog1_flags;
1948                 uint32 netlog3_logon_attempts;
1949                 uint32 netlog3_reserved1;
1950                 uint32 netlog3_reserved2;
1951                 uint32 netlog3_reserved3;
1952                 uint32 netlog3_reserved4;
1953                 uint32 netlog3_reserved5;
1954         } NETLOGON_INFO_3;
1955
1956         typedef struct {
1957                 string netlog4_trusted_dc_name;
1958                 string netlog4_trusted_domain_name;
1959         } NETLOGON_INFO_4;
1960
1961         [nopush,nopull] NET_API_STATUS I_NetLogonControl(
1962                 [in] string server_name,
1963                 [in] uint32 function_code,
1964                 [in] uint32 query_level,
1965                 [out,ref] uint8 **buffer
1966         );
1967
1968         /*******************************************/
1969         /* I_NetLogonControl2                      */
1970         /*******************************************/
1971
1972         [nopush,nopull] NET_API_STATUS I_NetLogonControl2(
1973                 [in] string server_name,
1974                 [in] uint32 function_code,
1975                 [in] uint32 query_level,
1976                 [in,unique] uint8 *data,
1977                 [out,ref] uint8 **buffer
1978         );
1979 }