1 // Copyright © 2015, skdltmxn 2 // Licensed under the MIT License <LICENSE.md> 3 //! This file contains structures, function prototypes, and definitions for the DsGetDcName API. 4 pub const DS_FORCE_REDISCOVERY: ::ULONG = 0x00000001; 5 pub const DS_DIRECTORY_SERVICE_REQUIRED: ::ULONG = 0x00000010; 6 pub const DS_DIRECTORY_SERVICE_PREFERRED: ::ULONG = 0x00000020; 7 pub const DS_GC_SERVER_REQUIRED: ::ULONG = 0x00000040; 8 pub const DS_PDC_REQUIRED: ::ULONG = 0x00000080; 9 pub const DS_BACKGROUND_ONLY: ::ULONG = 0x00000100; 10 pub const DS_IP_REQUIRED: ::ULONG = 0x00000200; 11 pub const DS_KDC_REQUIRED: ::ULONG = 0x00000400; 12 pub const DS_TIMESERV_REQUIRED: ::ULONG = 0x00000800; 13 pub const DS_WRITABLE_REQUIRED: ::ULONG = 0x00001000; 14 pub const DS_GOOD_TIMESERV_PREFERRED: ::ULONG = 0x00002000; 15 pub const DS_AVOID_SELF: ::ULONG = 0x00004000; 16 pub const DS_ONLY_LDAP_NEEDED: ::ULONG = 0x00008000; 17 pub const DS_IS_FLAT_NAME: ::ULONG = 0x00010000; 18 pub const DS_IS_DNS_NAME: ::ULONG = 0x00020000; 19 pub const DS_TRY_NEXTCLOSEST_SITE: ::ULONG = 0x00040000; 20 pub const DS_DIRECTORY_SERVICE_6_REQUIRED: ::ULONG = 0x00080000; 21 pub const DS_WEB_SERVICE_REQUIRED: ::ULONG = 0x00100000; 22 pub const DS_DIRECTORY_SERVICE_8_REQUIRED: ::ULONG = 0x00200000; 23 pub const DS_DIRECTORY_SERVICE_9_REQUIRED: ::ULONG = 0x00400000; 24 pub const DS_RETURN_DNS_NAME: ::ULONG = 0x40000000; 25 pub const DS_RETURN_FLAT_NAME: ::ULONG = 0x80000000; 26 pub const DSGETDC_VALID_FLAGS: ::ULONG = DS_FORCE_REDISCOVERY | DS_DIRECTORY_SERVICE_REQUIRED 27 | DS_DIRECTORY_SERVICE_PREFERRED | DS_GC_SERVER_REQUIRED | DS_PDC_REQUIRED | DS_BACKGROUND_ONLY 28 | DS_IP_REQUIRED | DS_KDC_REQUIRED | DS_TIMESERV_REQUIRED | DS_WRITABLE_REQUIRED 29 | DS_GOOD_TIMESERV_PREFERRED | DS_AVOID_SELF | DS_ONLY_LDAP_NEEDED | DS_IS_FLAT_NAME 30 | DS_IS_DNS_NAME | DS_TRY_NEXTCLOSEST_SITE | DS_DIRECTORY_SERVICE_6_REQUIRED 31 | DS_DIRECTORY_SERVICE_8_REQUIRED | DS_DIRECTORY_SERVICE_9_REQUIRED | DS_WEB_SERVICE_REQUIRED 32 | DS_RETURN_FLAT_NAME | DS_RETURN_DNS_NAME; 33 STRUCT!{struct DOMAIN_CONTROLLER_INFOA { 34 DomainControllerName: ::LPSTR, 35 DomainControllerAddress: ::LPSTR, 36 DomainControllerAddressType: ::ULONG, 37 DomainGuid: ::GUID, 38 DomainName: ::LPSTR, 39 DnsForestName: ::LPSTR, 40 Flags: ::ULONG, 41 DcSiteName: ::LPSTR, 42 ClientSiteName: ::LPSTR, 43 }} 44 pub type PDOMAIN_CONTROLLER_INFOA = *mut DOMAIN_CONTROLLER_INFOA; 45 STRUCT!{struct DOMAIN_CONTROLLER_INFOW { 46 DomainControllerName: ::LPWSTR, 47 DomainControllerAddress: ::LPWSTR, 48 DomainControllerAddressType: ::ULONG, 49 DomainGuid: ::GUID, 50 DomainName: ::LPWSTR, 51 DnsForestName: ::LPWSTR, 52 Flags: ::ULONG, 53 DcSiteName: ::LPWSTR, 54 ClientSiteName: ::LPWSTR, 55 }} 56 pub type PDOMAIN_CONTROLLER_INFOW = *mut DOMAIN_CONTROLLER_INFOW; 57 pub const DS_INET_ADDRESS: ::ULONG = 1; 58 pub const DS_NETBIOS_ADDRESS: ::ULONG = 2; 59 pub const DS_PDC_FLAG: ::ULONG = 0x00000001; 60 pub const DS_GC_FLAG: ::ULONG = 0x00000004; 61 pub const DS_LDAP_FLAG: ::ULONG = 0x00000008; 62 pub const DS_DS_FLAG: ::ULONG = 0x00000010; 63 pub const DS_KDC_FLAG: ::ULONG = 0x00000020; 64 pub const DS_TIMESERV_FLAG: ::ULONG = 0x00000040; 65 pub const DS_CLOSEST_FLAG: ::ULONG = 0x00000080; 66 pub const DS_WRITABLE_FLAG: ::ULONG = 0x00000100; 67 pub const DS_GOOD_TIMESERV_FLAG: ::ULONG = 0x00000200; 68 pub const DS_NDNC_FLAG: ::ULONG = 0x00000400; 69 pub const DS_SELECT_SECRET_DOMAIN_6_FLAG: ::ULONG = 0x00000800; 70 pub const DS_FULL_SECRET_DOMAIN_6_FLAG: ::ULONG = 0x00001000; 71 pub const DS_WS_FLAG: ::ULONG = 0x00002000; 72 pub const DS_DS_8_FLAG: ::ULONG = 0x00004000; 73 pub const DS_DS_9_FLAG: ::ULONG = 0x00008000; 74 pub const DS_PING_FLAGS: ::ULONG = 0x000FFFFF; 75 pub const DS_DNS_CONTROLLER_FLAG: ::ULONG = 0x20000000; 76 pub const DS_DNS_DOMAIN_FLAG: ::ULONG = 0x40000000; 77 pub const DS_DNS_FOREST_FLAG: ::ULONG = 0x80000000; 78 pub const DS_DOMAIN_IN_FOREST: ::ULONG = 0x0001; 79 pub const DS_DOMAIN_DIRECT_OUTBOUND: ::ULONG = 0x0002; 80 pub const DS_DOMAIN_TREE_ROOT: ::ULONG = 0x0004; 81 pub const DS_DOMAIN_PRIMARY: ::ULONG = 0x0008; 82 pub const DS_DOMAIN_NATIVE_MODE: ::ULONG = 0x0010; 83 pub const DS_DOMAIN_DIRECT_INBOUND: ::ULONG = 0x0020; 84 pub const DS_DOMAIN_VALID_FLAGS: ::ULONG = DS_DOMAIN_IN_FOREST | DS_DOMAIN_DIRECT_OUTBOUND 85 | DS_DOMAIN_TREE_ROOT | DS_DOMAIN_PRIMARY | DS_DOMAIN_NATIVE_MODE | DS_DOMAIN_DIRECT_INBOUND; 86 STRUCT!{struct DS_DOMAIN_TRUSTSW { 87 NetbiosDomainName: ::LPWSTR, 88 DnsDomainName: ::LPWSTR, 89 Flags: ::ULONG, 90 ParentIndex: ::ULONG, 91 TrustType: ::ULONG, 92 TrustAttributes: ::ULONG, 93 DomainSid: ::PSID, 94 DomainGuid: ::GUID, 95 }} 96 pub type PDS_DOMAIN_TRUSTSW = *mut DS_DOMAIN_TRUSTSW; 97 STRUCT!{struct DS_DOMAIN_TRUSTSA { 98 NetbiosDomainName: ::LPSTR, 99 DnsDomainName: ::LPSTR, 100 Flags: ::ULONG, 101 ParentIndex: ::ULONG, 102 TrustType: ::ULONG, 103 TrustAttributes: ::ULONG, 104 DomainSid: ::PSID, 105 DomainGuid: ::GUID, 106 }} 107 pub type PDS_DOMAIN_TRUSTSA = *mut DS_DOMAIN_TRUSTSA; 108 pub const DS_ONLY_DO_SITE_NAME: ::ULONG = 0x01; 109 pub const DS_NOTIFY_AFTER_SITE_RECORDS: ::ULONG = 0x02; 110 pub const DS_OPEN_VALID_OPTION_FLAGS: ::ULONG = DS_ONLY_DO_SITE_NAME 111 | DS_NOTIFY_AFTER_SITE_RECORDS; 112 pub const DS_OPEN_VALID_FLAGS: ::ULONG = DS_FORCE_REDISCOVERY | DS_ONLY_LDAP_NEEDED 113 | DS_KDC_REQUIRED | DS_PDC_REQUIRED | DS_GC_SERVER_REQUIRED | DS_WRITABLE_REQUIRED; 114