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