1 /***********************************************************************\
2 *                              lmbrowsr.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.lmbrowsr;
11 version(Windows):
12 
13 private import win32.lmcons, win32.windef;
14 
15 const BROWSER_ROLE_PDC = 1;
16 const BROWSER_ROLE_BDC = 2;
17 
18 struct BROWSER_STATISTICS {
19 	LARGE_INTEGER StatisticsStartTime;
20 	LARGE_INTEGER NumberOfServerAnnouncements;
21 	LARGE_INTEGER NumberOfDomainAnnouncements;
22 	ULONG NumberOfElectionPackets;
23 	ULONG NumberOfMailslotWrites;
24 	ULONG NumberOfGetBrowserServerListRequests;
25 	ULONG NumberOfServerEnumerations;
26 	ULONG NumberOfDomainEnumerations;
27 	ULONG NumberOfOtherEnumerations;
28 	ULONG NumberOfMissedServerAnnouncements;
29 	ULONG NumberOfMissedMailslotDatagrams;
30 	ULONG NumberOfMissedGetBrowserServerListRequests;
31 	ULONG NumberOfFailedServerAnnounceAllocations;
32 	ULONG NumberOfFailedMailslotAllocations;
33 	ULONG NumberOfFailedMailslotReceives;
34 	ULONG NumberOfFailedMailslotWrites;
35 	ULONG NumberOfFailedMailslotOpens;
36 	ULONG NumberOfDuplicateMasterAnnouncements;
37 	LARGE_INTEGER NumberOfIllegalDatagrams;
38 }
39 alias BROWSER_STATISTICS* PBROWSER_STATISTICS, LPBROWSER_STATISTICS;
40 
41 struct BROWSER_STATISTICS_100 {
42 	LARGE_INTEGER StartTime;
43 	LARGE_INTEGER NumberOfServerAnnouncements;
44 	LARGE_INTEGER NumberOfDomainAnnouncements;
45 	ULONG NumberOfElectionPackets;
46 	ULONG NumberOfMailslotWrites;
47 	ULONG NumberOfGetBrowserServerListRequests;
48 	LARGE_INTEGER NumberOfIllegalDatagrams;
49 }
50 alias BROWSER_STATISTICS_100* PBROWSER_STATISTICS_100;
51 
52 struct BROWSER_STATISTICS_101 {
53 	LARGE_INTEGER StartTime;
54 	LARGE_INTEGER NumberOfServerAnnouncements;
55 	LARGE_INTEGER NumberOfDomainAnnouncements;
56 	ULONG NumberOfElectionPackets;
57 	ULONG NumberOfMailslotWrites;
58 	ULONG NumberOfGetBrowserServerListRequests;
59 	LARGE_INTEGER NumberOfIllegalDatagrams;
60 	ULONG NumberOfMissedServerAnnouncements;
61 	ULONG NumberOfMissedMailslotDatagrams;
62 	ULONG NumberOfMissedGetBrowserServerListRequests;
63 	ULONG NumberOfFailedServerAnnounceAllocations;
64 	ULONG NumberOfFailedMailslotAllocations;
65 	ULONG NumberOfFailedMailslotReceives;
66 	ULONG NumberOfFailedMailslotWrites;
67 	ULONG NumberOfFailedMailslotOpens;
68 	ULONG NumberOfDuplicateMasterAnnouncements;
69 }
70 alias BROWSER_STATISTICS_101* PBROWSER_STATISTICS_101;
71 
72 extern (Windows) {
73 	NET_API_STATUS I_BrowserServerEnum(LPCWSTR, LPCWSTR, LPCWSTR, DWORD,
74 	  PBYTE*, DWORD, PDWORD, PDWORD, DWORD, LPCWSTR, PDWORD);
75 	NET_API_STATUS I_BrowserServerEnumEx(LPCWSTR, LPCWSTR, LPCWSTR, DWORD,
76 	  PBYTE*, DWORD, PDWORD, PDWORD, DWORD, LPCWSTR, LPCWSTR);
77 	NET_API_STATUS I_BrowserQueryEmulatedDomains(LPWSTR, PBYTE*, PDWORD);
78 	NET_API_STATUS I_BrowserQueryOtherDomains(LPCWSTR, PBYTE*, PDWORD, PDWORD);
79 	NET_API_STATUS I_BrowserResetNetlogonState(LPCWSTR);
80 	NET_API_STATUS I_BrowserSetNetlogonState(LPWSTR, LPWSTR, LPWSTR, DWORD);
81 	NET_API_STATUS I_BrowserQueryStatistics(LPCWSTR, LPBROWSER_STATISTICS*);
82 	NET_API_STATUS I_BrowserResetStatistics(LPCWSTR);
83 	WORD I_BrowserServerEnumForXactsrv(LPCWSTR, LPCWSTR, ULONG, USHORT, PVOID,
84 	  WORD, DWORD, PDWORD, PDWORD, DWORD, LPCWSTR, LPCWSTR, PWORD);
85 	NET_API_STATUS I_BrowserDebugTrace(PWCHAR, PCHAR);
86 }