[PSDK]
[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 DsEnumerateDomainTrustsA(
67 LPSTR ServerName,
68 ULONG Flags,
69 PDS_DOMAIN_TRUSTSA* Domains,
70 PULONG DomainCount);
71
72 DWORD WINAPI
73 DsEnumerateDomainTrustsW(
74 LPWSTR ServerName,
75 ULONG Flags,
76 PDS_DOMAIN_TRUSTSW* Domains,
77 PULONG DomainCount);
78
79 DWORD WINAPI
80 DsGetDcNameA(
81 LPCSTR ComputerName,
82 LPCSTR DomainName,
83 GUID* DomainGuid,
84 LPCSTR SiteName,
85 ULONG Flags,
86 PDOMAIN_CONTROLLER_INFOA* DomainControllerInfo);
87
88 DWORD WINAPI
89 DsGetDcNameW(
90 LPCWSTR ComputerName,
91 LPCWSTR DomainName,
92 GUID* DomainGuid,
93 LPCWSTR SiteName,
94 ULONG Flags,
95 PDOMAIN_CONTROLLER_INFOW* DomainControllerInfo);
96
97 #ifdef UNICODE
98 typedef DOMAIN_CONTROLLER_INFOW DOMAIN_CONTROLLER_INFO, *PDOMAIN_CONTROLLER_INFO;
99 typedef DS_DOMAIN_TRUSTSW DS_DOMAIN_TRUSTS, *PDS_DOMAIN_TRUSTS;
100 #define DsEnumerateDomainTrusts DsEnumerateDomainTrustsW
101 #define DsGetDcName DsGetDcNameW
102 #else
103 typedef DOMAIN_CONTROLLER_INFOA DOMAIN_CONTROLLER_INFO, *PDOMAIN_CONTROLLER_INFO;
104 typedef DS_DOMAIN_TRUSTSA DS_DOMAIN_TRUSTS, *PDS_DOMAIN_TRUSTS;
105 #define DsEnumerateDomainTrusts DsEnumerateDomainTrustsA
106 #define DsGetDcName DsGetDcNameA
107 #endif
108
109 #ifdef __cplusplus
110 }
111 #endif
112 #endif