| 1 |
/** |
| 2 |
* This file has no copyright assigned and is placed in the Public Domain. |
| 3 |
* This file is part of the mingw-w64 runtime package. |
| 4 |
* No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| 5 |
*/ |
| 6 |
#ifndef _DSGETDC_ |
| 7 |
#define _DSGETDC_ |
| 8 |
|
| 9 |
#include <_mingw_unicode.h> |
| 10 |
|
| 11 |
#ifndef _DSGETDCAPI_ |
| 12 |
#define DSGETDCAPI DECLSPEC_IMPORT |
| 13 |
#else |
| 14 |
#define DSGETDCAPI |
| 15 |
#endif |
| 16 |
|
| 17 |
#ifdef __cplusplus |
| 18 |
extern "C" { |
| 19 |
#endif |
| 20 |
|
| 21 |
#define DS_FORCE_REDISCOVERY 0x00000001 |
| 22 |
|
| 23 |
#define DS_DIRECTORY_SERVICE_REQUIRED 0x00000010 |
| 24 |
#define DS_DIRECTORY_SERVICE_PREFERRED 0x00000020 |
| 25 |
#define DS_GC_SERVER_REQUIRED 0x00000040 |
| 26 |
#define DS_PDC_REQUIRED 0x00000080 |
| 27 |
#define DS_BACKGROUND_ONLY 0x00000100 |
| 28 |
#define DS_IP_REQUIRED 0x00000200 |
| 29 |
#define DS_KDC_REQUIRED 0x00000400 |
| 30 |
#define DS_TIMESERV_REQUIRED 0x00000800 |
| 31 |
#define DS_WRITABLE_REQUIRED 0x00001000 |
| 32 |
#define DS_GOOD_TIMESERV_PREFERRED 0x00002000 |
| 33 |
#define DS_AVOID_SELF 0x00004000 |
| 34 |
#define DS_ONLY_LDAP_NEEDED 0x00008000 |
| 35 |
|
| 36 |
#define DS_IS_FLAT_NAME 0x00010000 |
| 37 |
#define DS_IS_DNS_NAME 0x00020000 |
| 38 |
|
| 39 |
#define DS_RETURN_DNS_NAME 0x40000000 |
| 40 |
#define DS_RETURN_FLAT_NAME 0x80000000 |
| 41 |
|
| 42 |
#define DSGETDC_VALID_FLAGS (DS_FORCE_REDISCOVERY | DS_DIRECTORY_SERVICE_REQUIRED | DS_DIRECTORY_SERVICE_PREFERRED | DS_GC_SERVER_REQUIRED | DS_PDC_REQUIRED | DS_BACKGROUND_ONLY | DS_IP_REQUIRED | DS_KDC_REQUIRED | DS_TIMESERV_REQUIRED | DS_WRITABLE_REQUIRED | DS_GOOD_TIMESERV_PREFERRED | DS_AVOID_SELF | DS_ONLY_LDAP_NEEDED | DS_IS_FLAT_NAME | DS_IS_DNS_NAME | DS_RETURN_FLAT_NAME | DS_RETURN_DNS_NAME) |
| 43 |
|
| 44 |
typedef struct _DOMAIN_CONTROLLER_INFOA { |
| 45 |
LPSTR DomainControllerName; |
| 46 |
LPSTR DomainControllerAddress; |
| 47 |
ULONG DomainControllerAddressType; |
| 48 |
GUID DomainGuid; |
| 49 |
LPSTR DomainName; |
| 50 |
LPSTR DnsForestName; |
| 51 |
ULONG Flags; |
| 52 |
LPSTR DcSiteName; |
| 53 |
LPSTR ClientSiteName; |
| 54 |
} DOMAIN_CONTROLLER_INFOA,*PDOMAIN_CONTROLLER_INFOA; |
| 55 |
|
| 56 |
typedef struct _DOMAIN_CONTROLLER_INFOW { |
| 57 |
LPWSTR DomainControllerName; |
| 58 |
LPWSTR DomainControllerAddress; |
| 59 |
ULONG DomainControllerAddressType; |
| 60 |
GUID DomainGuid; |
| 61 |
LPWSTR DomainName; |
| 62 |
LPWSTR DnsForestName; |
| 63 |
ULONG Flags; |
| 64 |
LPWSTR DcSiteName; |
| 65 |
LPWSTR ClientSiteName; |
| 66 |
} DOMAIN_CONTROLLER_INFOW,*PDOMAIN_CONTROLLER_INFOW; |
| 67 |
|
| 68 |
#define DOMAIN_CONTROLLER_INFO __MINGW_NAME_AW(DOMAIN_CONTROLLER_INFO) |
| 69 |
#define PDOMAIN_CONTROLLER_INFO __MINGW_NAME_AW(PDOMAIN_CONTROLLER_INFO) |
| 70 |
|
| 71 |
#define DS_INET_ADDRESS 1 |
| 72 |
#define DS_NETBIOS_ADDRESS 2 |
| 73 |
|
| 74 |
#define DS_PDC_FLAG 0x00000001 |
| 75 |
#define DS_GC_FLAG 0x00000004 |
| 76 |
#define DS_LDAP_FLAG 0x00000008 |
| 77 |
#define DS_DS_FLAG 0x00000010 |
| 78 |
#define DS_KDC_FLAG 0x00000020 |
| 79 |
#define DS_TIMESERV_FLAG 0x00000040 |
| 80 |
#define DS_CLOSEST_FLAG 0x00000080 |
| 81 |
#define DS_WRITABLE_FLAG 0x00000100 |
| 82 |
#define DS_GOOD_TIMESERV_FLAG 0x00000200 |
| 83 |
#define DS_NDNC_FLAG 0x00000400 |
| 84 |
#define DS_PING_FLAGS 0x0000FFFF |
| 85 |
|
| 86 |
#define DS_DNS_CONTROLLER_FLAG 0x20000000 |
| 87 |
#define DS_DNS_DOMAIN_FLAG 0x40000000 |
| 88 |
#define DS_DNS_FOREST_FLAG 0x80000000 |
| 89 |
|
| 90 |
#define DsGetDcName __MINGW_NAME_AW(DsGetDcName) |
| 91 |
#define DsGetSiteName __MINGW_NAME_AW(DsGetSiteName) |
| 92 |
#define DsValidateSubnetName __MINGW_NAME_AW(DsValidateSubnetName) |
| 93 |
|
| 94 |
DSGETDCAPI DWORD WINAPI DsGetDcNameA(LPCSTR ComputerName,LPCSTR DomainName,GUID *DomainGuid,LPCSTR SiteName,ULONG Flags,PDOMAIN_CONTROLLER_INFOA *DomainControllerInfo); |
| 95 |
DSGETDCAPI DWORD WINAPI DsGetDcNameW(LPCWSTR ComputerName,LPCWSTR DomainName,GUID *DomainGuid,LPCWSTR SiteName,ULONG Flags,PDOMAIN_CONTROLLER_INFOW *DomainControllerInfo); |
| 96 |
DSGETDCAPI DWORD WINAPI DsGetSiteNameA(LPCSTR ComputerName,LPSTR *SiteName); |
| 97 |
DSGETDCAPI DWORD WINAPI DsGetSiteNameW(LPCWSTR ComputerName,LPWSTR *SiteName); |
| 98 |
DSGETDCAPI DWORD WINAPI DsValidateSubnetNameW(LPCWSTR SubnetName); |
| 99 |
DSGETDCAPI DWORD WINAPI DsValidateSubnetNameA(LPCSTR SubnetName); |
| 100 |
|
| 101 |
#ifdef _WINSOCK2API_ |
| 102 |
|
| 103 |
#define DsAddressToSiteNames __MINGW_NAME_AW(DsAddressToSiteNames) |
| 104 |
#define DsAddressToSiteNamesEx __MINGW_NAME_AW(DsAddressToSiteNamesEx) |
| 105 |
|
| 106 |
DSGETDCAPI DWORD WINAPI DsAddressToSiteNamesW(LPCWSTR ComputerName,DWORD EntryCount,PSOCKET_ADDRESS SocketAddresses,LPWSTR **SiteNames); |
| 107 |
DSGETDCAPI DWORD WINAPI DsAddressToSiteNamesA(LPCSTR ComputerName,DWORD EntryCount,PSOCKET_ADDRESS SocketAddresses,LPSTR **SiteNames); |
| 108 |
DSGETDCAPI DWORD WINAPI DsAddressToSiteNamesExW(LPCWSTR ComputerName,DWORD EntryCount,PSOCKET_ADDRESS SocketAddresses,LPWSTR **SiteNames,LPWSTR **SubnetNames); |
| 109 |
DSGETDCAPI DWORD WINAPI DsAddressToSiteNamesExA(LPCSTR ComputerName,DWORD EntryCount,PSOCKET_ADDRESS SocketAddresses,LPSTR **SiteNames,LPSTR **SubnetNames); |
| 110 |
#endif |
| 111 |
|
| 112 |
#define DS_DOMAIN_IN_FOREST 0x0001 |
| 113 |
#define DS_DOMAIN_DIRECT_OUTBOUND 0x0002 |
| 114 |
#define DS_DOMAIN_TREE_ROOT 0x0004 |
| 115 |
#define DS_DOMAIN_PRIMARY 0x0008 |
| 116 |
#define DS_DOMAIN_NATIVE_MODE 0x0010 |
| 117 |
#define DS_DOMAIN_DIRECT_INBOUND 0x0020 |
| 118 |
#define DS_DOMAIN_VALID_FLAGS (DS_DOMAIN_IN_FOREST | DS_DOMAIN_DIRECT_OUTBOUND | DS_DOMAIN_TREE_ROOT | DS_DOMAIN_PRIMARY | DS_DOMAIN_NATIVE_MODE | DS_DOMAIN_DIRECT_INBOUND) |
| 119 |
|
| 120 |
typedef struct _DS_DOMAIN_TRUSTSW { |
| 121 |
LPWSTR NetbiosDomainName; |
| 122 |
LPWSTR DnsDomainName; |
| 123 |
ULONG Flags; |
| 124 |
ULONG ParentIndex; |
| 125 |
ULONG TrustType; |
| 126 |
ULONG TrustAttributes; |
| 127 |
PSID DomainSid; |
| 128 |
GUID DomainGuid; |
| 129 |
} DS_DOMAIN_TRUSTSW,*PDS_DOMAIN_TRUSTSW; |
| 130 |
|
| 131 |
typedef struct _DS_DOMAIN_TRUSTSA { |
| 132 |
LPSTR NetbiosDomainName; |
| 133 |
LPSTR DnsDomainName; |
| 134 |
ULONG Flags; |
| 135 |
ULONG ParentIndex; |
| 136 |
ULONG TrustType; |
| 137 |
ULONG TrustAttributes; |
| 138 |
PSID DomainSid; |
| 139 |
GUID DomainGuid; |
| 140 |
} DS_DOMAIN_TRUSTSA,*PDS_DOMAIN_TRUSTSA; |
| 141 |
|
| 142 |
#define DS_DOMAIN_TRUSTS __MINGW_NAME_AW(DS_DOMAIN_TRUSTS) |
| 143 |
#define PDS_DOMAIN_TRUSTS __MINGW_NAME_AW(PDS_DOMAIN_TRUSTS) |
| 144 |
|
| 145 |
#define DsEnumerateDomainTrusts __MINGW_NAME_AW(DsEnumerateDomainTrusts) |
| 146 |
#define DsGetDcSiteCoverage __MINGW_NAME_AW(DsGetDcSiteCoverage) |
| 147 |
#define DsDeregisterDnsHostRecords __MINGW_NAME_AW(DsDeregisterDnsHostRecords) |
| 148 |
|
| 149 |
DSGETDCAPI DWORD WINAPI DsEnumerateDomainTrustsW (LPWSTR ServerName,ULONG Flags,PDS_DOMAIN_TRUSTSW *Domains,PULONG DomainCount); |
| 150 |
DSGETDCAPI DWORD WINAPI DsEnumerateDomainTrustsA (LPSTR ServerName,ULONG Flags,PDS_DOMAIN_TRUSTSA *Domains,PULONG DomainCount); |
| 151 |
|
| 152 |
#if defined(_NTLSA_) || defined(_NTSECAPI_) |
| 153 |
DSGETDCAPI DWORD WINAPI DsGetForestTrustInformationW (LPCWSTR ServerName,LPCWSTR TrustedDomainName,DWORD Flags,PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo); |
| 154 |
DSGETDCAPI DWORD WINAPI DsMergeForestTrustInformationW(LPCWSTR DomainName,PLSA_FOREST_TRUST_INFORMATION NewForestTrustInfo,PLSA_FOREST_TRUST_INFORMATION OldForestTrustInfo,PLSA_FOREST_TRUST_INFORMATION *MergedForestTrustInfo); |
| 155 |
|
| 156 |
#define DS_GFTI_UPDATE_TDO 0x1 |
| 157 |
#define DS_GFTI_VALID_FLAGS 0x1 |
| 158 |
#endif |
| 159 |
|
| 160 |
DSGETDCAPI DWORD WINAPI DsGetDcSiteCoverageW(LPCWSTR ServerName,PULONG EntryCount,LPWSTR **SiteNames); |
| 161 |
DSGETDCAPI DWORD WINAPI DsGetDcSiteCoverageA(LPCSTR ServerName,PULONG EntryCount,LPSTR **SiteNames); |
| 162 |
DSGETDCAPI DWORD WINAPI DsDeregisterDnsHostRecordsW (LPWSTR ServerName,LPWSTR DnsDomainName,GUID *DomainGuid,GUID *DsaGuid,LPWSTR DnsHostName); |
| 163 |
DSGETDCAPI DWORD WINAPI DsDeregisterDnsHostRecordsA (LPSTR ServerName,LPSTR DnsDomainName,GUID *DomainGuid,GUID *DsaGuid,LPSTR DnsHostName); |
| 164 |
|
| 165 |
#ifdef _WINSOCK2API_ |
| 166 |
#define DS_ONLY_DO_SITE_NAME 0x01 |
| 167 |
#define DS_NOTIFY_AFTER_SITE_RECORDS 0x02 |
| 168 |
|
| 169 |
#define DS_OPEN_VALID_OPTION_FLAGS (DS_ONLY_DO_SITE_NAME | DS_NOTIFY_AFTER_SITE_RECORDS) |
| 170 |
|
| 171 |
#define DS_OPEN_VALID_FLAGS (DS_FORCE_REDISCOVERY | DS_ONLY_LDAP_NEEDED | DS_KDC_REQUIRED | DS_PDC_REQUIRED | DS_GC_SERVER_REQUIRED | DS_WRITABLE_REQUIRED) |
| 172 |
|
| 173 |
#define DsGetDcOpen __MINGW_NAME_AW(DsGetDcOpen) |
| 174 |
#define DsGetDcNext __MINGW_NAME_AW(DsGetDcNext) |
| 175 |
#define DsGetDcClose __MINGW_NAME_AW(DsGetDcClose) |
| 176 |
|
| 177 |
DSGETDCAPI DWORD WINAPI DsGetDcOpenW(LPCWSTR DnsName,ULONG OptionFlags,LPCWSTR SiteName,GUID *DomainGuid,LPCWSTR DnsForestName,ULONG DcFlags,PHANDLE RetGetDcContext); |
| 178 |
DSGETDCAPI DWORD WINAPI DsGetDcOpenA(LPCSTR DnsName,ULONG OptionFlags,LPCSTR SiteName,GUID *DomainGuid,LPCSTR DnsForestName,ULONG DcFlags,PHANDLE RetGetDcContext); |
| 179 |
DSGETDCAPI DWORD WINAPI DsGetDcNextW(HANDLE GetDcContextHandle,PULONG SockAddressCount,LPSOCKET_ADDRESS *SockAddresses,LPWSTR *DnsHostName); |
| 180 |
DSGETDCAPI DWORD WINAPI DsGetDcNextA(HANDLE GetDcContextHandle,PULONG SockAddressCount,LPSOCKET_ADDRESS *SockAddresses,LPSTR *DnsHostName); |
| 181 |
DSGETDCAPI VOID WINAPI DsGetDcCloseW(HANDLE GetDcContextHandle); |
| 182 |
#endif |
| 183 |
|
| 184 |
#ifdef __cplusplus |
| 185 |
} |
| 186 |
#endif |
| 187 |
#endif |