1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// Copyright © 2015, skdltmxn
// Licensed under the MIT License <LICENSE.md>
//! This file contains structures, function prototypes, and definitions for the DsGetDcName API.
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_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_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_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;
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;
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;