aboutsummaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/dsgetdc.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/um/dsgetdc.rs')
-rw-r--r--vendor/winapi/src/um/dsgetdc.rs267
1 files changed, 267 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/dsgetdc.rs b/vendor/winapi/src/um/dsgetdc.rs
new file mode 100644
index 0000000..860a652
--- /dev/null
+++ b/vendor/winapi/src/um/dsgetdc.rs
@@ -0,0 +1,267 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! This file contains structures, function prototypes, and definitions for the DsGetDcName API.
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, PULONG, ULONG};
+use shared::ws2def::{LPSOCKET_ADDRESS, PSOCKET_ADDRESS};
+use um::ntsecapi::PLSA_FOREST_TRUST_INFORMATION;
+use um::winnt::{HANDLE, LPCSTR, LPCWSTR, LPSTR, LPWSTR, PHANDLE, PSID};
+pub const DS_FORCE_REDISCOVERY: ULONG = 0x00000001;
+pub const DS_DIRECTORY_SERVICE_REQUIRED: ULONG = 0x00000010;
+pub const DS_DIRECTORY_SERVICE_PREFERRED: ULONG = 0x00000020;
+pub const DS_GC_SERVER_REQUIRED: ULONG = 0x00000040;
+pub const DS_PDC_REQUIRED: ULONG = 0x00000080;
+pub const DS_BACKGROUND_ONLY: ULONG = 0x00000100;
+pub const DS_IP_REQUIRED: ULONG = 0x00000200;
+pub const DS_KDC_REQUIRED: ULONG = 0x00000400;
+pub const DS_TIMESERV_REQUIRED: ULONG = 0x00000800;
+pub const DS_WRITABLE_REQUIRED: ULONG = 0x00001000;
+pub const DS_GOOD_TIMESERV_PREFERRED: ULONG = 0x00002000;
+pub const DS_AVOID_SELF: ULONG = 0x00004000;
+pub const DS_ONLY_LDAP_NEEDED: ULONG = 0x00008000;
+pub const DS_IS_FLAT_NAME: ULONG = 0x00010000;
+pub const DS_IS_DNS_NAME: ULONG = 0x00020000;
+pub const DS_TRY_NEXTCLOSEST_SITE: ULONG = 0x00040000;
+pub const DS_DIRECTORY_SERVICE_6_REQUIRED: ULONG = 0x00080000;
+pub const DS_WEB_SERVICE_REQUIRED: ULONG = 0x00100000;
+pub const DS_DIRECTORY_SERVICE_8_REQUIRED: ULONG = 0x00200000;
+pub const DS_DIRECTORY_SERVICE_9_REQUIRED: ULONG = 0x00400000;
+pub const DS_DIRECTORY_SERVICE_10_REQUIRED: ULONG = 0x00800000;
+pub const DS_RETURN_DNS_NAME: ULONG = 0x40000000;
+pub const DS_RETURN_FLAT_NAME: ULONG = 0x80000000;
+pub const DSGETDC_VALID_FLAGS: ULONG = 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_TRY_NEXTCLOSEST_SITE | DS_DIRECTORY_SERVICE_6_REQUIRED
+ | DS_DIRECTORY_SERVICE_8_REQUIRED | DS_DIRECTORY_SERVICE_9_REQUIRED
+ | DS_DIRECTORY_SERVICE_10_REQUIRED | DS_WEB_SERVICE_REQUIRED | DS_RETURN_FLAT_NAME
+ | DS_RETURN_DNS_NAME;
+STRUCT!{struct DOMAIN_CONTROLLER_INFOA {
+ DomainControllerName: LPSTR,
+ DomainControllerAddress: LPSTR,
+ DomainControllerAddressType: ULONG,
+ DomainGuid: GUID,
+ DomainName: LPSTR,
+ DnsForestName: LPSTR,
+ Flags: ULONG,
+ DcSiteName: LPSTR,
+ ClientSiteName: LPSTR,
+}}
+pub type PDOMAIN_CONTROLLER_INFOA = *mut DOMAIN_CONTROLLER_INFOA;
+STRUCT!{struct DOMAIN_CONTROLLER_INFOW {
+ DomainControllerName: LPWSTR,
+ DomainControllerAddress: LPWSTR,
+ DomainControllerAddressType: ULONG,
+ DomainGuid: GUID,
+ DomainName: LPWSTR,
+ DnsForestName: LPWSTR,
+ Flags: ULONG,
+ DcSiteName: LPWSTR,
+ ClientSiteName: LPWSTR,
+}}
+pub type PDOMAIN_CONTROLLER_INFOW = *mut DOMAIN_CONTROLLER_INFOW;
+pub const DS_INET_ADDRESS: ULONG = 1;
+pub const DS_NETBIOS_ADDRESS: ULONG = 2;
+pub const DS_PDC_FLAG: ULONG = 0x00000001;
+pub const DS_GC_FLAG: ULONG = 0x00000004;
+pub const DS_LDAP_FLAG: ULONG = 0x00000008;
+pub const DS_DS_FLAG: ULONG = 0x00000010;
+pub const DS_KDC_FLAG: ULONG = 0x00000020;
+pub const DS_TIMESERV_FLAG: ULONG = 0x00000040;
+pub const DS_CLOSEST_FLAG: ULONG = 0x00000080;
+pub const DS_WRITABLE_FLAG: ULONG = 0x00000100;
+pub const DS_GOOD_TIMESERV_FLAG: ULONG = 0x00000200;
+pub const DS_NDNC_FLAG: ULONG = 0x00000400;
+pub const DS_SELECT_SECRET_DOMAIN_6_FLAG: ULONG = 0x00000800;
+pub const DS_FULL_SECRET_DOMAIN_6_FLAG: ULONG = 0x00001000;
+pub const DS_WS_FLAG: ULONG = 0x00002000;
+pub const DS_DS_8_FLAG: ULONG = 0x00004000;
+pub const DS_DS_9_FLAG: ULONG = 0x00008000;
+pub const DS_DS_10_FLAG: ULONG = 0x00010000;
+pub const DS_PING_FLAGS: ULONG = 0x000FFFFF;
+pub const DS_DNS_CONTROLLER_FLAG: ULONG = 0x20000000;
+pub const DS_DNS_DOMAIN_FLAG: ULONG = 0x40000000;
+pub const DS_DNS_FOREST_FLAG: ULONG = 0x80000000;
+extern "system" {
+ pub fn DsGetDcNameA(
+ ComputerName: LPCSTR,
+ DomainName: LPCSTR,
+ DomainGuid: *mut GUID,
+ SiteName: LPCSTR,
+ Flags: ULONG,
+ DomainControllerInfo: *mut PDOMAIN_CONTROLLER_INFOA,
+ ) -> DWORD;
+ pub fn DsGetDcNameW(
+ ComputerName: LPCWSTR,
+ DomainName: LPCWSTR,
+ DomainGuid: *mut GUID,
+ SiteName: LPCWSTR,
+ Flags: ULONG,
+ DomainControllerInfo: *mut PDOMAIN_CONTROLLER_INFOW,
+ ) -> DWORD;
+ pub fn DsGetSiteNameA(
+ ComputerName: LPCSTR,
+ SiteName: *mut LPSTR,
+ ) -> DWORD;
+ pub fn DsGetSiteNameW(
+ ComputerName: LPCWSTR,
+ SiteName: *mut LPWSTR,
+ ) -> DWORD;
+ pub fn DsValidateSubnetNameW(
+ SubnetName: LPCWSTR,
+ ) -> DWORD;
+ pub fn DsValidateSubnetNameA(
+ SubnetName: LPCSTR,
+ ) -> DWORD;
+ pub fn DsAddressToSiteNamesW(
+ ComputerName: LPCWSTR,
+ EntryCount: DWORD,
+ SocketAddresses: PSOCKET_ADDRESS,
+ SiteNames: *mut *mut LPWSTR,
+ ) -> DWORD;
+ pub fn DsAddressToSiteNamesA(
+ ComputerName: LPCSTR,
+ EntryCount: DWORD,
+ SocketAddresses: PSOCKET_ADDRESS,
+ SiteNames: *mut *mut LPSTR,
+ ) -> DWORD;
+ pub fn DsAddressToSiteNamesExW(
+ ComputerName: LPCWSTR,
+ EntryCount: DWORD,
+ SocketAddresses: PSOCKET_ADDRESS,
+ SiteNames: *mut *mut LPWSTR,
+ SubnetNames: *mut *mut LPWSTR,
+ ) -> DWORD;
+ pub fn DsAddressToSiteNamesExA(
+ ComputerName: LPCSTR,
+ EntryCount: DWORD,
+ SocketAddresses: PSOCKET_ADDRESS,
+ SiteNames: *mut *mut LPSTR,
+ SubnetNames: *mut *mut LPSTR,
+ ) -> DWORD;
+}
+pub const DS_DOMAIN_IN_FOREST: ULONG = 0x0001;
+pub const DS_DOMAIN_DIRECT_OUTBOUND: ULONG = 0x0002;
+pub const DS_DOMAIN_TREE_ROOT: ULONG = 0x0004;
+pub const DS_DOMAIN_PRIMARY: ULONG = 0x0008;
+pub const DS_DOMAIN_NATIVE_MODE: ULONG = 0x0010;
+pub const DS_DOMAIN_DIRECT_INBOUND: ULONG = 0x0020;
+pub const DS_DOMAIN_VALID_FLAGS: ULONG = DS_DOMAIN_IN_FOREST | DS_DOMAIN_DIRECT_OUTBOUND
+ | DS_DOMAIN_TREE_ROOT | DS_DOMAIN_PRIMARY | DS_DOMAIN_NATIVE_MODE | DS_DOMAIN_DIRECT_INBOUND;
+STRUCT!{struct DS_DOMAIN_TRUSTSW {
+ NetbiosDomainName: LPWSTR,
+ DnsDomainName: LPWSTR,
+ Flags: ULONG,
+ ParentIndex: ULONG,
+ TrustType: ULONG,
+ TrustAttributes: ULONG,
+ DomainSid: PSID,
+ DomainGuid: GUID,
+}}
+pub type PDS_DOMAIN_TRUSTSW = *mut DS_DOMAIN_TRUSTSW;
+STRUCT!{struct DS_DOMAIN_TRUSTSA {
+ NetbiosDomainName: LPSTR,
+ DnsDomainName: LPSTR,
+ Flags: ULONG,
+ ParentIndex: ULONG,
+ TrustType: ULONG,
+ TrustAttributes: ULONG,
+ DomainSid: PSID,
+ DomainGuid: GUID,
+}}
+pub type PDS_DOMAIN_TRUSTSA = *mut DS_DOMAIN_TRUSTSA;
+extern "system" {
+ pub fn DsEnumerateDomainTrustsW(
+ ServerName: LPWSTR,
+ Flags: ULONG,
+ Domains: *mut PDS_DOMAIN_TRUSTSW,
+ DomainCount: PULONG,
+ ) -> DWORD;
+ pub fn DsEnumerateDomainTrustsA(
+ ServerName: LPSTR,
+ Flags: ULONG,
+ Domains: *mut PDS_DOMAIN_TRUSTSA,
+ DomainCount: PULONG,
+ ) -> DWORD;
+ pub fn DsGetForestTrustInformationW(
+ ServerName: LPCWSTR,
+ TrustedDomainName: LPCWSTR,
+ Flags: DWORD,
+ ForestTrustInfo: *mut PLSA_FOREST_TRUST_INFORMATION,
+ ) -> DWORD;
+ pub fn DsMergeForestTrustInformationW(
+ DomainName: LPCWSTR,
+ NewForestTrustInfo: PLSA_FOREST_TRUST_INFORMATION,
+ OldForestTrustInfo: PLSA_FOREST_TRUST_INFORMATION,
+ MergedForestTrustInfo: *mut PLSA_FOREST_TRUST_INFORMATION,
+ ) -> DWORD;
+ pub fn DsGetDcSiteCoverageW(
+ ServerName: LPCWSTR,
+ EntryCount: PULONG,
+ SiteNames: *mut *mut LPWSTR,
+ ) -> DWORD;
+ pub fn DsGetDcSiteCoverageA(
+ ServerName: LPCSTR,
+ EntryCount: PULONG,
+ SiteNames: *mut *mut LPSTR,
+ ) -> DWORD;
+ pub fn DsDeregisterDnsHostRecordsW(
+ ServerName: LPWSTR,
+ DnsDomainName: LPWSTR,
+ DomainGuid: *mut GUID,
+ DsaGuid: *mut GUID,
+ DnsHostName: LPWSTR,
+ ) -> DWORD;
+ pub fn DsDeregisterDnsHostRecordsA(
+ ServerName: LPSTR,
+ DnsDomainName: LPSTR,
+ DomainGuid: *mut GUID,
+ DsaGuid: *mut GUID,
+ DnsHostName: LPSTR,
+ ) -> DWORD;
+}
+pub const DS_ONLY_DO_SITE_NAME: ULONG = 0x01;
+pub const DS_NOTIFY_AFTER_SITE_RECORDS: ULONG = 0x02;
+pub const DS_OPEN_VALID_OPTION_FLAGS: ULONG = DS_ONLY_DO_SITE_NAME
+ | DS_NOTIFY_AFTER_SITE_RECORDS;
+pub const DS_OPEN_VALID_FLAGS: ULONG = DS_FORCE_REDISCOVERY | DS_ONLY_LDAP_NEEDED
+ | DS_KDC_REQUIRED | DS_PDC_REQUIRED | DS_GC_SERVER_REQUIRED | DS_WRITABLE_REQUIRED;
+extern "system" {
+ pub fn DsGetDcOpenW(
+ DnsName: LPCWSTR,
+ OptionFlags: ULONG,
+ SiteName: LPCWSTR,
+ DomainGuid: *mut GUID,
+ DnsForestName: LPCWSTR,
+ DcFlags: ULONG,
+ RetGetDcContext: PHANDLE,
+ ) -> DWORD;
+ pub fn DsGetDcOpenA(
+ DnsName: LPCSTR,
+ OptionFlags: ULONG,
+ SiteName: LPCSTR,
+ DomainGuid: *mut GUID,
+ DnsForestName: LPCSTR,
+ DcFlags: ULONG,
+ RetGetDcContext: PHANDLE,
+ ) -> DWORD;
+ pub fn DsGetDcNextA(
+ GetDcContextHandle: HANDLE,
+ SockAddressCount: PULONG,
+ SockAddresses: *mut LPSOCKET_ADDRESS,
+ DnsHostName: *mut LPSTR,
+ ) -> DWORD;
+ pub fn DsGetDcNextW(
+ GetDcContextHandle: HANDLE,
+ SockAddressCount: PULONG,
+ SockAddresses: *mut LPSOCKET_ADDRESS,
+ DnsHostName: *mut LPWSTR,
+ ) -> DWORD;
+ pub fn DsGetDcCloseW(
+ GetDcContextHandle: HANDLE,
+ );
+}