[NETAPI32]
[reactos.git] / reactos / sdk / include / psdk / dsgetdc.h
1 #ifndef _DSGETDC_H
2 #define _DSGETDC_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 #define DS_DOMAIN_IN_FOREST 0x01
9 #define DS_DOMAIN_DIRECT_OUTBOUND 0x02
10 #define DS_DOMAIN_TREE_ROOT 0x04
11 #define DS_DOMAIN_PRIMARY 0x08
12 #define DS_DOMAIN_NATIVE_MODE 0x10
13 #define DS_DOMAIN_DIRECT_INBOUND 0x20
14
15 typedef struct _DOMAIN_CONTROLLER_INFOA
16 {
17 LPSTR DomainControllerName;
18 LPSTR DomainControllerAddress;
19 ULONG DomainControllerAddressType;
20 GUID DomainGuid;
21 LPSTR DomainName;
22 LPSTR DnsForestName;
23 ULONG Flags;
24 LPSTR DcSiteName;
25 LPSTR ClientSiteName;
26 } DOMAIN_CONTROLLER_INFOA, *PDOMAIN_CONTROLLER_INFOA;
27
28 typedef struct _DOMAIN_CONTROLLER_INFOW
29 {
30 LPWSTR DomainControllerName;
31 LPWSTR DomainControllerAddress;
32 ULONG DomainControllerAddressType;
33 GUID DomainGuid;
34 LPWSTR DomainName;
35 LPWSTR DnsForestName;
36 ULONG Flags;
37 LPWSTR DcSiteName;
38 LPWSTR ClientSiteName;
39 } DOMAIN_CONTROLLER_INFOW, *PDOMAIN_CONTROLLER_INFOW;
40
41 typedef struct _DS_DOMAIN_TRUSTSA
42 {
43 LPSTR NetbiosDomainName;
44 LPSTR DnsDomainName;
45 ULONG Flags;
46 ULONG ParentIndex;
47 ULONG TrustType;
48 ULONG TrustAttributes;
49 PSID DomainSid;
50 GUID DomainGuid;
51 } DS_DOMAIN_TRUSTSA, *PDS_DOMAIN_TRUSTSA;
52
53 typedef struct _DS_DOMAIN_TRUSTSW
54 {
55 LPWSTR NetbiosDomainName;
56 LPWSTR DnsDomainName;
57 ULONG Flags;
58 ULONG ParentIndex;
59 ULONG TrustType;
60 ULONG TrustAttributes;
61 PSID DomainSid;
62 GUID DomainGuid;
63 } DS_DOMAIN_TRUSTSW, *PDS_DOMAIN_TRUSTSW;
64
65 DWORD WINAPI
66 DsAddressToSiteNamesA(
67 LPCSTR ComputerName,
68 DWORD EntryCount,
69 PSOCKET_ADDRESS SocketAddresses,
70 LPSTR **SiteNames);
71
72 DWORD WINAPI
73 DsAddressToSiteNamesW(
74 LPCWSTR ComputerName,
75 DWORD EntryCount,
76 PSOCKET_ADDRESS SocketAddresses,
77 LPWSTR **SiteNames);
78
79 DWORD WINAPI
80 DsAddressToSiteNamesExA(
81 LPCSTR ComputerName,
82 DWORD EntryCount,
83 PSOCKET_ADDRESS SocketAddresses,
84 LPSTR **SiteNames,
85 LPSTR **SubnetNames);
86
87 DWORD WINAPI
88 DsAddressToSiteNamesExW(
89 LPCWSTR ComputerName,
90 DWORD EntryCount,
91 PSOCKET_ADDRESS SocketAddresses,
92 LPWSTR **SiteNames,
93 LPWSTR **SubnetNames);
94
95 DWORD WINAPI
96 DsEnumerateDomainTrustsA(
97 LPSTR ServerName,
98 ULONG Flags,
99 PDS_DOMAIN_TRUSTSA* Domains,
100 PULONG DomainCount);
101
102 DWORD WINAPI
103 DsEnumerateDomainTrustsW(
104 LPWSTR ServerName,
105 ULONG Flags,
106 PDS_DOMAIN_TRUSTSW* Domains,
107 PULONG DomainCount);
108
109 DWORD WINAPI
110 DsGetDcNameA(
111 LPCSTR ComputerName,
112 LPCSTR DomainName,
113 GUID* DomainGuid,
114 LPCSTR SiteName,
115 ULONG Flags,
116 PDOMAIN_CONTROLLER_INFOA* DomainControllerInfo);
117
118 DWORD WINAPI
119 DsGetDcNameW(
120 LPCWSTR ComputerName,
121 LPCWSTR DomainName,
122 GUID* DomainGuid,
123 LPCWSTR SiteName,
124 ULONG Flags,
125 PDOMAIN_CONTROLLER_INFOW* DomainControllerInfo);
126
127 DWORD
128 WINAPI
129 DsGetDcSiteCoverageA(
130 LPCSTR ServerName,
131 PULONG EntryCount,
132 LPSTR **SiteNames);
133
134 DWORD
135 WINAPI
136 DsGetDcSiteCoverageW(
137 LPCWSTR ServerName,
138 PULONG EntryCount,
139 LPWSTR **SiteNames);
140
141 #ifdef UNICODE
142 typedef DOMAIN_CONTROLLER_INFOW DOMAIN_CONTROLLER_INFO, *PDOMAIN_CONTROLLER_INFO;
143 typedef DS_DOMAIN_TRUSTSW DS_DOMAIN_TRUSTS, *PDS_DOMAIN_TRUSTS;
144 #define DsAddressToSiteNames DsAddressToSiteNamesW
145 #define DsAddressToSiteNamesEx DsAddressToSiteNamesExW
146 #define DsEnumerateDomainTrusts DsEnumerateDomainTrustsW
147 #define DsGetDcName DsGetDcNameW
148 #define DsGetDcSiteCoverage DsGetDcSiteCoverageW
149 #else
150 typedef DOMAIN_CONTROLLER_INFOA DOMAIN_CONTROLLER_INFO, *PDOMAIN_CONTROLLER_INFO;
151 typedef DS_DOMAIN_TRUSTSA DS_DOMAIN_TRUSTS, *PDS_DOMAIN_TRUSTS;
152 #define DsAddressToSiteNames DsAddressToSiteNamesA
153 #define DsAddressToSiteNamesEx DsAddressToSiteNamesExA
154 #define DsEnumerateDomainTrusts DsEnumerateDomainTrustsA
155 #define DsGetDcName DsGetDcNameA
156 #define DsGetDcSiteCoverage DsGetDcSiteCoverageA
157 #endif
158
159 #ifdef __cplusplus
160 }
161 #endif
162 #endif