source: vendor/w32api/3.6/include/windns.h@ 2780

Last change on this file since 2780 was 2720, checked in by bird, 19 years ago

w32api v3.6

File size: 9.7 KB
Line 
1#ifndef _WINDNS_H
2#define _WINDNS_H
3#if __GNUC__ >= 3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#define DNS_QUERY_STANDARD 0x0
12#define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x1
13#define DNS_QUERY_USE_TCP_ONLY 0x2
14#define DNS_QUERY_NO_RECURSION 0x4
15#define DNS_QUERY_BYPASS_CACHE 0x8
16#define DNS_QUERY_NO_WIRE_QUERY 0x10
17#define DNS_QUERY_NO_LOCAL_NAME 0x20
18#define DNS_QUERY_NO_HOSTS_FILE 0x40
19#define DNS_QUERY_NO_NETBT 0x80
20#define DNS_QUERY_TREAT_AS_FQDN 0x1000
21#define DNS_QUERY_WIRE_ONLY 0x100
22#define DNS_QUERY_RETURN_MESSAGE 0x200
23#define DNS_QUERY_DONT_RESET_TTL_VALUES 0x100000
24#define DNS_QUERY_RESERVED 0xff000000
25
26#define DNS_UPDATE_SECURITY_USE_DEFAULT 0x0
27#define DNS_UPDATE_SECURITY_OFF 0x10
28#define DNS_UPDATE_SECURITY_ON 0x20
29#define DNS_UPDATE_SECURITY_ONLY 0x100
30#define DNS_UPDATE_CACHE_SECURITY_CONTEXT 0x200
31#define DNS_UPDATE_TEST_USE_LOCAL_SYS_ACCT 0x400
32#define DNS_UPDATE_FORCE_SECURITY_NEGO 0x800
33#define DNS_UPDATE_RESERVED 0xffff0000
34
35#ifndef RC_INVOKE
36typedef DWORD IP4_ADDRESS;
37typedef DWORD DNS_STATUS;
38enum {
39 DNS_TYPE_A=1,
40 DNS_TYPE_NS,
41 DNS_TYPE_MD,
42 DNS_TYPE_MF,
43 DNS_TYPE_CNAME,
44 DNS_TYPE_SOA,
45 DNS_TYPE_MB,
46 DNS_TYPE_MG,
47 DNS_TYPE_MR,
48 DNS_TYPE_NULL,
49 DNS_TYPE_WKS,
50 DNS_TYPE_PTR,
51 DNS_TYPE_HINFO,
52 DNS_TYPE_MINFO,
53 DNS_TYPE_MX,
54 DNS_TYPE_TEXT
55};
56typedef enum _DNS_CHARSET
57{
58 DnsCharSetUnknown,
59 DnsCharSetUnicode,
60 DnsCharSetUtf8,
61 DnsCharSetAnsi
62} DNS_CHARSET;
63typedef enum
64{
65 DnsConfigPrimaryDomainName_W,
66 DnsConfigPrimaryDomainName_A,
67 DnsConfigPrimaryDomainName_UTF8,
68 DnsConfigAdapterDomainName_W,
69 DnsConfigAdapterDomainName_A,
70 DnsConfigAdapterDomainName_UTF8,
71 DnsConfigDnsServerList,
72 DnsConfigSearchList,
73 DnsConfigAdapterInfo,
74 DnsConfigPrimaryHostNameRegistrationEnabled,
75 DnsConfigAdapterHostNameRegistrationEnabled,
76 DnsConfigAddressRegistrationMaxCount,
77 DnsConfigHostName_W,
78 DnsConfigHostName_A,
79 DnsConfigHostName_UTF8,
80 DnsConfigFullHostName_W,
81 DnsConfigFullHostName_A,
82 DnsConfigFullHostName_UTF8
83} DNS_CONFIG_TYPE;
84typedef enum
85{
86 DnsFreeFlat = 0,
87 DnsFreeRecordList,
88 DnsFreeParsedMessageFields
89} DNS_FREE_TYPE;
90typedef enum _DNS_NAME_FORMAT
91{
92 DnsNameDomain,
93 DnsNameDomainLabel,
94 DnsNameHostnameFull,
95 DnsNameHostnameLabel,
96 DnsNameWildcard,
97 DnsNameSrvRecord
98} DNS_NAME_FORMAT;
99typedef enum
100{
101 DnsSectionQuestion,
102 DnsSectionAnswer,
103 DnsSectionAuthority,
104 DnsSectionAdditional
105} DNS_SECTION;
106typedef struct _IP4_ARRAY {
107 DWORD AddrCount;
108 IP4_ADDRESS AddrArray[1];
109} IP4_ARRAY, *PIP4_ARRAY;
110typedef struct {
111 DWORD IP6Dword[4];
112} IP6_ADDRESS, *PIP6_ADDRESS, DNS_IP6_ADDRESS, *PDNS_IP6_ADDRESS;
113typedef struct _DNS_HEADER {
114 WORD Xid;
115 BYTE RecursionDesired;
116 BYTE Truncation;
117 BYTE Authoritative;
118 BYTE Opcode;
119 BYTE IsResponse;
120 BYTE ResponseCode;
121 BYTE Reserved;
122 BYTE RecursionAvailable;
123 WORD QuestionCount;
124 WORD AnswerCount;
125 WORD NameServerCount;
126 WORD AdditionalCount;
127} DNS_HEADER, *PDNS_HEADER;
128typedef struct _DNS_MESSAGE_BUFFER {
129 DNS_HEADER MessageHead;
130 CHAR MessageBody[1];
131} DNS_MESSAGE_BUFFER, *PDNS_MESSAGE_BUFFER;
132typedef struct _DnsRecordFlags {
133 DWORD Section :2;
134 DWORD Delete :1;
135 DWORD CharSet :2;
136 DWORD Unused :3;
137 DWORD Reserved :24;
138} DNS_RECORD_FLAGS;
139#define DNSREC_QUESTION 0
140#define DNSREC_ANSWER 1
141#define DNSREC_AUTHORITY 2
142#define DNSREC_ADDITIONAL 3
143typedef struct {
144 IP4_ADDRESS IpAddress;
145} DNS_A_DATA, *PDNS_A_DATA;
146typedef struct {
147 DNS_IP6_ADDRESS Ip6Address;
148} DNS_AAAA_DATA, *PDNS_AAAA_DATA;
149#define DNS_ATMA_MAX_ADDR_LENGTH 20
150typedef struct {
151 BYTE AddressType;
152 BYTE Address[DNS_ATMA_MAX_ADDR_LENGTH];
153} DNS_ATMA_DATA, *PDNS_ATMA_DATA;
154typedef struct {
155 WORD wFlags;
156 BYTE chProtocol;
157 BYTE chAlgorithm;
158 BYTE Key[1];
159} DNS_KEY_DATA, *PDNS_KEY_DATA;
160typedef struct {
161 WORD wVersion;
162 WORD wSize;
163 WORD wHorPrec;
164 WORD wVerPrec;
165 DWORD dwLatitude;
166 DWORD dwLongitude;
167 DWORD dwAltitude;
168} DNS_LOC_DATA, *PDNS_LOC_DATA;
169typedef struct {
170 LPTSTR pNameMailbox;
171 LPTSTR pNameErrorsMailbox;
172} DNS_MINFO_DATA, *PDNS_MINFO_DATA;
173typedef struct {
174 LPTSTR pNameExchange;
175 WORD wPreference;
176 WORD Pad;
177} DNS_MX_DATA, *PDNS_MX_DATA;
178typedef struct {
179 DWORD dwByteCount;
180 BYTE Data[1];
181} DNS_NULL_DATA, *PDNS_NULL_DATA;
182typedef struct {