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