21#ifndef __WINE_WINDNS_H
22#define __WINE_WINDNS_H
28#define DNS_TYPE_ZERO 0x0000
29#define DNS_TYPE_A 0x0001
30#define DNS_TYPE_NS 0x0002
31#define DNS_TYPE_MD 0x0003
32#define DNS_TYPE_MF 0x0004
33#define DNS_TYPE_CNAME 0x0005
34#define DNS_TYPE_SOA 0x0006
35#define DNS_TYPE_MB 0x0007
36#define DNS_TYPE_MG 0x0008
37#define DNS_TYPE_MR 0x0009
38#define DNS_TYPE_NULL 0x000a
39#define DNS_TYPE_WKS 0x000b
40#define DNS_TYPE_PTR 0x000c
41#define DNS_TYPE_HINFO 0x000d
42#define DNS_TYPE_MINFO 0x000e
43#define DNS_TYPE_MX 0x000f
44#define DNS_TYPE_TEXT 0x0010
45#define DNS_TYPE_RP 0x0011
46#define DNS_TYPE_AFSDB 0x0012
47#define DNS_TYPE_X25 0x0013
48#define DNS_TYPE_ISDN 0x0014
49#define DNS_TYPE_RT 0x0015
50#define DNS_TYPE_NSAP 0x0016
51#define DNS_TYPE_NSAPPTR 0x0017
52#define DNS_TYPE_SIG 0x0018
53#define DNS_TYPE_KEY 0x0019
54#define DNS_TYPE_PX 0x001a
55#define DNS_TYPE_GPOS 0x001b
56#define DNS_TYPE_AAAA 0x001c
57#define DNS_TYPE_LOC 0x001d
58#define DNS_TYPE_NXT 0x001e
59#define DNS_TYPE_EID 0x001f
60#define DNS_TYPE_NIMLOC 0x0020
61#define DNS_TYPE_SRV 0x0021
62#define DNS_TYPE_ATMA 0x0022
63#define DNS_TYPE_NAPTR 0x0023
64#define DNS_TYPE_KX 0x0024
65#define DNS_TYPE_CERT 0x0025
66#define DNS_TYPE_A6 0x0026
67#define DNS_TYPE_DNAME 0x0027
68#define DNS_TYPE_SINK 0x0028
69#define DNS_TYPE_OPT 0x0029
70#define DNS_TYPE_UINFO 0x0064
71#define DNS_TYPE_UID 0x0065
72#define DNS_TYPE_GID 0x0066
73#define DNS_TYPE_UNSPEC 0x0067
74#define DNS_TYPE_ADDRS 0x00f8
75#define DNS_TYPE_TKEY 0x00f9
76#define DNS_TYPE_TSIG 0x00fa
77#define DNS_TYPE_IXFR 0x00fb
78#define DNS_TYPE_AXFR 0x00fc
79#define DNS_TYPE_MAILB 0x00fd
80#define DNS_TYPE_MAILA 0x00fe
81#define DNS_TYPE_ALL 0x00ff
82#define DNS_TYPE_ANY 0x00ff
84#define DNS_TYPE_WINS 0xff01
85#define DNS_TYPE_WINSR 0xff02
86#define DNS_TYPE_NBSTAT (DNS_TYPE_WINSR)
88#define DNS_QUERY_STANDARD 0x00000000
89#define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x00000001
90#define DNS_QUERY_USE_TCP_ONLY 0x00000002
91#define DNS_QUERY_NO_RECURSION 0x00000004
92#define DNS_QUERY_BYPASS_CACHE 0x00000008
93#define DNS_QUERY_NO_WIRE_QUERY 0x00000010
94#define DNS_QUERY_NO_LOCAL_NAME 0x00000020
95#define DNS_QUERY_NO_HOSTS_FILE 0x00000040
96#define DNS_QUERY_NO_NETBT 0x00000080
97#define DNS_QUERY_WIRE_ONLY 0x00000100
98#define DNS_QUERY_RETURN_MESSAGE 0x00000200
99#define DNS_QUERY_MULTICAST_ONLY 0x00000400
100#define DNS_QUERY_NO_MULTICAST 0x00000800
101#define DNS_QUERY_TREAT_AS_FQDN 0x00001000
102#define DNS_QUERY_ADDRCONFIG 0x00002000
103#define DNS_QUERY_DUAL_ADDR 0x00004000
104#define DNS_QUERY_DONT_RESET_TTL_VALUES 0x00100000
105#define DNS_QUERY_DISABLE_IDN_ENCODING 0x00200000
106#define DNS_QUERY_APPEND_MULTILABEL 0x00800000
107#define DNS_QUERY_DNSSEC_OK 0x01000000
108#define DNS_QUERY_DNSSEC_CHECKING_DISABLED 0x02000000
109#define DNS_QUERY_RESERVED 0xff000000
111#define INLINE_WORD_FLIP(out, in) { WORD _in = (in); (out) = (_in << 8) | (_in >> 8); }
112#define INLINE_HTONS(out, in) INLINE_WORD_FLIP(out, in)
113#define INLINE_NTOHS(out, in) INLINE_WORD_FLIP(out, in)
115#define DNS_BYTE_FLIP_HEADER_COUNTS(header) { \
116 DNS_HEADER *_head = (header); \
117 INLINE_HTONS( _head->Xid, _head->Xid ); \
118 INLINE_HTONS( _head->QuestionCount, _head->QuestionCount ); \
119 INLINE_HTONS( _head->AnswerCount, _head->AnswerCount ); \
120 INLINE_HTONS( _head->NameServerCount, _head->NameServerCount ); \
121 INLINE_HTONS( _head->AdditionalCount, _head->AdditionalCount ); }
191#define SIZEOF_IP4_ADDRESS 4
192#define IP4_ADDRESS_STRING_LENGTH 16
193#define IP6_ADDRESS_STRING_LENGTH 65
194#define DNS_ADDRESS_STRING_LENGTH IP6_ADDRESS_STRING_LENGTH
195#define IP4_ADDRESS_STRING_BUFFER_LENGTH IP4_ADDRESS_STRING_LENGTH
196#define IP6_ADDRESS_STRING_BUFFER_LENGTH IP6_ADDRESS_STRING_LENGTH
198#define DNS_MAX_NAME_LENGTH 255
199#define DNS_MAX_LABEL_LENGTH 63
200#define DNS_MAX_NAME_BUFFER_LENGTH (DNS_MAX_NAME_LENGTH + 1)
201#define DNS_MAX_LABEL_BUFFER_LENGTH (DNS_MAX_LABEL_LENGTH + 1)
209#define DNS_OPCODE_QUERY 0
210#define DNS_OPCODE_IQUERY 1
211#define DNS_OPCODE_SERVER_STATUS 2
212#define DNS_OPCODE_UNKNOWN 3
213#define DNS_OPCODE_NOTIFY 4
214#define DNS_OPCODE_UPDATE 5
216#define DNS_RCODE_NOERROR 0
217#define DNS_RCODE_FORMERR 1
218#define DNS_RCODE_SERVFAIL 2
219#define DNS_RCODE_NXDOMAIN 3
220#define DNS_RCODE_NOTIMPL 4
221#define DNS_RCODE_REFUSED 5
222#define DNS_RCODE_YXDOMAIN 6
223#define DNS_RCODE_YXRRSET 7
224#define DNS_RCODE_NXRRSET 8
225#define DNS_RCODE_NOTAUTH 9
226#define DNS_RCODE_NOTZONE 10
227#define DNS_RCODE_MAX 15
228#define DNS_RCODE_BADVERS 16
229#define DNS_RCODE_BADSIG 16
230#define DNS_RCODE_BADKEY 17
231#define DNS_RCODE_BADTIME 18
233#define DNS_RCODE_NO_ERROR DNS_RCODE_NOERROR
234#define DNS_RCODE_FORMAT_ERROR DNS_RCODE_FORMERR
235#define DNS_RCODE_SERVER_FAILURE DNS_RCODE_SERVFAIL
236#define DNS_RCODE_NAME_ERROR DNS_RCODE_NXDOMAIN
237#define DNS_RCODE_NOT_IMPLEMENTED DNS_RCODE_NOTIMPL
435#define DNS_ATMA_MAX_ADDR_LENGTH 20
484 PBYTE pAlgorithmPacket;
493 UCHAR cAlgNameLength;
494 BOOL bPacketPointers;
500 PBYTE pAlgorithmPacket;
509 UCHAR cAlgNameLength;
510 BOOL bPacketPointers;
519 PBYTE pAlgorithmPacket;
528 UCHAR cAlgNameLength;
529 BOOL bPacketPointers;
535 PBYTE pAlgorithmPacket;
544 UCHAR cAlgNameLength;
545 BOOL bPacketPointers;
551 DWORD dwLookupTimeout;
552 DWORD dwCacheTimeout;
553 DWORD cWinsServerCount;
560 DWORD dwLookupTimeout;
561 DWORD dwCacheTimeout;
568 DWORD dwLookupTimeout;
569 DWORD dwCacheTimeout;
601 DNS_PTR_DATAA PTR,
Ptr,
NS,
Ns,
CNAME,
Cname,
MB,
Mb,
MD,
Md,
MF,
Mf,
MG,
Mg,
MR,
Mr;
638 DNS_PTR_DATAW PTR,
Ptr,
NS,
Ns,
CNAME,
Cname,
MB,
Mb,
MD,
Md,
MF,
Mf,
MG,
Mg,
MR,
Mr;
658#if defined(__WINESRC__) || defined(UNICODE)
672#define DNS_RRSET_INIT( rrset ) \
674 PDNS_RRSET _prrset = &(rrset); \
675 _prrset->pFirstRR = NULL; \
676 _prrset->pLastRR = (PDNS_RECORD) &_prrset->pFirstRR; \
679#define DNS_RRSET_ADD( rrset, pnewRR ) \
681 PDNS_RRSET _prrset = &(rrset); \
682 PDNS_RECORD _prrnew = (pnewRR); \
683 _prrset->pLastRR->pNext = _prrnew; \
684 _prrset->pLastRR = _prrnew; \
687#define DNS_RRSET_TERMINATE( rrset ) \
689 PDNS_RRSET _prrset = &(rrset); \
690 _prrset->pLastRR->pNext = NULL; \
693#define DNS_ADDR_MAX_SOCKADDR_LENGTH 32
721#define DNS_QUERY_RESULTS_VERSION1 0x1
735#define DNS_QUERY_REQUEST_VERSION1 0x1
786#define DnsAcquireContextHandle WINELIB_NAME_AW(DnsAcquireContextHandle_)
793#define DnsModifyRecordsInSet WINELIB_NAME_AW(DnsModifyRecordsInSet_)
796#define DnsNameCompare WINELIB_NAME_AW(DnsNameCompare_)
800#define DnsQuery WINELIB_NAME_AW(DnsQuery_)
814#define DnsReplaceRecordSet WINELIB_NAME_AW(DnsReplaceRecordSet)
819#define DnsValidateName WINELIB_NAME_AW(DnsValidateName_)
DNS_STATUS WINAPI DnsQueryEx()
static const WCHAR Signature[]
macro TEXTAREA section xr p2align endm macro DATAAREA section dw endm macro RODATAAREA section dr endm macro EXPORT Attribute global Name endm macro IMPORT Target ifc WEAK weak Name set Target endif endm set macro SET_COMDAT_ALIGNMENT Alignment set Alignment endm macro NESTED_ENTRY Name global Name p2align xr p2align __ComdatAlignment NESTED_ENTRY Name endm macro ALTERNATE_ENTRY Name global Name Params endm macro ALIGN Pad
DNS_STATUS WINAPI DnsModifyRecordsInSet_A(_In_opt_ PDNS_RECORD pAddRecords, _In_opt_ PDNS_RECORD pDeleteRecords, _In_ DWORD Options, _In_opt_ HANDLE hCredentials, _Inout_opt_ PIP4_ARRAY pExtraList, _Inout_opt_ PVOID pReserved)
struct DNS_PTR_DATAA * PDNS_PTR_DATAA
struct _DnsRecordA * PDNS_RECORDA
struct DNS_AAAA_DATA * PDNS_AAAA_DATA
struct DNS_PTR_DATAW * PDNS_PTR_DATAW
BOOL WINAPI DnsWriteQuestionToBuffer_W(_Inout_ PDNS_MESSAGE_BUFFER pDnsBuffer, _Inout_ PDWORD pdwBufferSize, _In_ LPWSTR pszName, _In_ WORD wType, _In_ WORD Xid, _In_ BOOL fRecursionDesired)
@ DnsConfigFullHostName_UTF8
@ DnsConfigPrimaryDomainName_W
@ DnsConfigPrimaryHostNameRegistrationEnabled
@ DnsConfigFullHostName_W
@ DnsConfigAdapterHostNameRegistrationEnabled
@ DnsConfigPrimaryDomainName_UTF8
@ DnsConfigAdapterDomainName_W
@ DnsConfigAdapterDomainName_A
@ DnsConfigFullHostName_A
@ DnsConfigPrimaryDomainName_A
@ DnsConfigAddressRegistrationMaxCount
@ DnsConfigAdapterDomainName_UTF8
BOOL WINAPI DnsRecordCompare(_In_ PDNS_RECORD, _In_ PDNS_RECORD)
struct DNS_SOA_DATAW * PDNS_SOA_DATAW
DNS_STATUS WINAPI DnsReplaceRecordSetW(_In_ PDNS_RECORD pReplaceSet, _In_ DWORD Options, _In_opt_ HANDLE hContext, _Inout_opt_ PIP4_ARRAY pExtraInfo, _Inout_opt_ PVOID pReserved)
struct DNS_WKS_DATA * PDNS_WKS_DATA
void WINAPI DnsRecordListFree(_Inout_opt_ PDNS_RECORD, _In_ DNS_FREE_TYPE)
struct _DnsRRSet DNS_RRSET
@ DnsFreeParsedMessageFields
struct DNS_A_DATA * PDNS_A_DATA
DNS_STATUS WINAPI DnsReplaceRecordSetA(_In_ PDNS_RECORD pReplaceSet, _In_ DWORD Options, _In_opt_ HANDLE hContext, _Inout_opt_ PIP4_ARRAY pExtraInfo, _Inout_opt_ PVOID pReserved)
PDNS_RECORD WINAPI DnsRecordSetDetach(_Inout_ PDNS_RECORD)
struct DNS_WINS_DATA * PDNS_WINS_DATA
struct _DnsRecordW DNS_RECORDW
BOOL WINAPI DnsRecordSetCompare(_Inout_ PDNS_RECORD pRR1, _Inout_ PDNS_RECORD pRR2, _Outptr_opt_result_maybenull_ PDNS_RECORD *ppDiff1, _Outptr_opt_result_maybenull_ PDNS_RECORD *ppDiff2)
struct _DNS_HEADER * PDNS_HEADER
struct _IP4_ARRAY * PIP4_ARRAY
struct DNS_NXT_DATAW * PDNS_NXT_DATAW
struct DNS_LOC_DATA * PDNS_LOC_DATA
struct _DnsAddr * PDNS_ADDR
struct IP6_ADDRESS DNS_IP6_ADDRESS
struct DNS_SOA_DATAA * PDNS_SOA_DATAA
void WINAPI DnsReleaseContextHandle(_In_ HANDLE)
struct DNS_TSIG_DATAW * PDNS_TSIG_DATAW
struct DNS_MX_DATAW * PDNS_MX_DATAW
struct DNS_NXT_DATAA * PDNS_NXT_DATAA
struct _DNS_MESSAGE_BUFFER DNS_MESSAGE_BUFFER
struct DNS_TKEY_DATAA * PDNS_TKEY_DATAA
struct DNS_KEY_DATA * PDNS_KEY_DATA
struct _DnsRecordA DNS_RECORDA
struct DNS_SIG_DATAW * PDNS_SIG_DATAW
struct IP6_ADDRESS * PIP6_ADDRESS
DNS_STATUS WINAPI DnsQueryConfig(_In_ DNS_CONFIG_TYPE Config, _In_ DWORD Flag, _In_opt_ PWSTR pwsAdapterName, _In_opt_ PVOID pReserved, _Out_writes_bytes_to_opt_(*pBufLen, *pBufLen) PVOID pBuffer, _Inout_ PDWORD pBufLen)
struct _IP4_ARRAY IP4_ARRAY
DNS_STATUS WINAPI DnsQuery_UTF8(_In_ PCSTR pszName, _In_ WORD wType, _In_ DWORD Options, _Inout_opt_ PVOID pExtra, _Outptr_result_maybenull_ PDNS_RECORD *ppQueryResults, _Outptr_opt_result_maybenull_ PVOID *pReserved)
DNS_STATUS WINAPI DnsQuery_A(_In_ PCSTR pszName, _In_ WORD wType, _In_ DWORD Options, _Inout_opt_ PVOID pExtra, _Outptr_result_maybenull_ PDNS_RECORD *ppQueryResults, _Outptr_opt_result_maybenull_ PVOID *pReserved)
DNS_STATUS WINAPI DnsValidateName_A(_In_ LPCSTR, _In_ DNS_NAME_FORMAT)
enum _DNS_NAME_FORMAT DNS_NAME_FORMAT
struct _DnsRRSet * PDNS_RRSET
struct DNS_WINSR_DATAW * PDNS_WINSR_DATAW
struct DNS_ATMA_DATA * PDNS_ATMA_DATA
DNS_STATUS WINAPI DnsQuery_W(_In_ PCWSTR pszName, _In_ WORD wType, _In_ DWORD Options, _Inout_opt_ PVOID pExtra, _Outptr_result_maybenull_ PDNS_RECORD *ppQueryResults, _Outptr_opt_result_maybenull_ PVOID *pReserved)
PDNS_RECORD WINAPI DnsRecordCopyEx(_In_ PDNS_RECORD pRecord, _In_ DNS_CHARSET CharSetIn, _In_ DNS_CHARSET CharSetOut)
struct IP6_ADDRESS * PDNS_IP6_ADDRESS
DNS_STATUS WINAPI DnsExtractRecordsFromMessage_UTF8(_In_ PDNS_MESSAGE_BUFFER pDnsBuffer, _In_ WORD wMessageLength, _Outptr_ PDNS_RECORD *ppRecord)
struct DNS_SRV_DATAA * PDNS_SRV_DATAA
struct DNS_MINFO_DATAW * PDNS_MINFO_DATAW
struct DNS_TXT_DATAA * PDNS_TXT_DATAA
struct DNS_TSIG_DATAA * PDNS_TSIG_DATAA
DNS_STATUS WINAPI DnsModifyRecordsInSet_UTF8(_In_opt_ PDNS_RECORD pAddRecords, _In_opt_ PDNS_RECORD pDeleteRecords, _In_ DWORD Options, _In_opt_ HANDLE hCredentials, _Inout_opt_ PIP4_ARRAY pExtraList, _Inout_opt_ PVOID pReserved)
struct DNS_NULL_DATA * PDNS_NULL_DATA
struct _DnsAddrArray * PDNS_ADDR_ARRAY
struct _DNS_HEADER DNS_HEADER
struct DNS_MX_DATAA * PDNS_MX_DATAA
struct _DnsAddrArray DNS_ADDR_ARRAY
DNS_STATUS WINAPI DnsValidateName_W(_In_ LPCWSTR, _In_ DNS_NAME_FORMAT)
BOOL WINAPI DnsNameCompare_A(_In_ PCSTR pszName1, _In_ PCSTR pszName2)
struct _DNS_MESSAGE_BUFFER * PDNS_MESSAGE_BUFFER
enum _DNS_CHARSET DNS_CHARSET
DNS_STATUS WINAPI DnsAcquireContextHandle_W(_In_ DWORD CredentialFlags, _In_opt_ PVOID Credentials, _Outptr_ PHANDLE pContext)
PDNS_RECORD WINAPI DnsRecordSetCopyEx(_In_ PDNS_RECORD pRecordSet, _In_ DNS_CHARSET CharSetIn, _In_ DNS_CHARSET CharSetOut)
DNS_STATUS WINAPI DnsReplaceRecordSetUTF8(_In_ PDNS_RECORD pReplaceSet, _In_ DWORD Options, _In_opt_ HANDLE hContext, _Inout_opt_ PIP4_ARRAY pExtraInfo, _Inout_opt_ PVOID pReserved)
BOOL WINAPI DnsWriteQuestionToBuffer_UTF8(_Inout_ PDNS_MESSAGE_BUFFER pDnsBuffer, _Inout_ PDWORD pdwBufferSize, _In_ LPSTR pszName, _In_ WORD wType, _In_ WORD Xid, _In_ BOOL fRecursionDesired)
struct _DnsRecordW * PDNS_RECORDW
struct _DnsRecordFlags DNS_RECORD_FLAGS
struct DNS_WINSR_DATAA * PDNS_WINSR_DATAA
struct DNS_TKEY_DATAW * PDNS_TKEY_DATAW
DNS_STATUS WINAPI DnsAcquireContextHandle_A(_In_ DWORD CredentialFlags, _In_opt_ PVOID Credentials, _Outptr_ PHANDLE pContext)
struct DNS_TXT_DATAW * PDNS_TXT_DATAW
struct DNS_MINFO_DATAA * PDNS_MINFO_DATAA
DNS_STATUS WINAPI DnsValidateName_UTF8(_In_ LPCSTR, _In_ DNS_NAME_FORMAT)
struct DNS_SIG_DATAA * PDNS_SIG_DATAA
#define DNS_ATMA_MAX_ADDR_LENGTH
DNS_STATUS WINAPI DnsModifyRecordsInSet_W(_In_opt_ PDNS_RECORD pAddRecords, _In_opt_ PDNS_RECORD pDeleteRecords, _In_ DWORD Options, _In_opt_ HANDLE hCredentials, _Inout_opt_ PIP4_ARRAY pExtraList, _Inout_opt_ PVOID pReserved)
BOOL WINAPI DnsNameCompare_W(_In_ PCWSTR pszwName1, _In_ PCWSTR pszwName2)
DNS_STATUS WINAPI DnsExtractRecordsFromMessage_W(_In_ PDNS_MESSAGE_BUFFER pDnsBuffer, _In_ WORD wMessageLength, _Outptr_ PDNS_RECORD *ppRecord)
struct DNS_SRV_DATAW * PDNS_SRV_DATAW
struct _DNS_CACHE_ENTRY * Next
PDNS_ADDR_ARRAY pDnsServerList
PDNS_QUERY_COMPLETION_ROUTINE pQueryCompletionCallback
DNS_RECORD * pQueryRecords
PDNS_SERVICE_BROWSE_CALLBACK pBrowseCallback
DNS_QUERY_COMPLETION_ROUTINE * pBrowseCallbackV2
CHAR MaxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]
union _DnsAddr::@4194 Data
DWORD DnsAddrUserDword[8]
union _DnsRecordA::@4196 Data
struct _DnsRecordA * pNext
union _DnsRecordA::@4195 Flags
union _DnsRecordW::@4198 Data
struct _DnsRecordW * pNext
union _DnsRecordW::@4197 Flags
PCSYMCRYPT_HMAC_MD5_EXPANDED_KEY pKey
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
_Reserved_ PVOID Reserved
#define DECL_WINELIB_TYPE_AW(type)
struct _DNS_SERVICE_BROWSE_REQUEST DNS_SERVICE_BROWSE_REQUEST
struct _DNS_SERVICE_BROWSE_REQUEST * PDNS_SERVICE_BROWSE_REQUEST
DNS_STATUS WINAPI DnsCancelQuery(DNS_QUERY_CANCEL *)
struct _DNS_SERVICE_CANCEL * PDNS_SERVICE_CANCEL
BOOL WINAPI DnsGetCacheDataTable(PDNS_CACHE_ENTRY *)
DNS_SERVICE_BROWSE_CALLBACK * PDNS_SERVICE_BROWSE_CALLBACK
void WINAPI DNS_SERVICE_BROWSE_CALLBACK(DWORD, void *, PDNS_RECORD)
struct _DNS_QUERY_CANCEL * PDNS_QUERY_CANCEL
DNS_STATUS WINAPI DnsServiceBrowse(PDNS_SERVICE_BROWSE_REQUEST, PDNS_SERVICE_CANCEL)
struct _DNS_QUERY_REQUEST * PDNS_QUERY_REQUEST
struct _DNS_QUERY_RESULT * PDNS_QUERY_RESULT
struct _DNS_QUERY_RESULT DNS_QUERY_RESULT
@ DnsConfigDnsServersUnspec
@ DnsConfigDnsServersIpv4
@ DnsConfigDnsServersIpv6
struct _DNS_SERVICE_CANCEL DNS_SERVICE_CANCEL
struct _DNS_QUERY_CANCEL DNS_QUERY_CANCEL
VOID WINAPI DnsFree(PVOID, DNS_FREE_TYPE)
struct _DNS_CACHE_ENTRY DNS_CACHE_ENTRY
struct DNS_OPT_DATA * PDNS_OPT_DATA
DNS_QUERY_COMPLETION_ROUTINE * PDNS_QUERY_COMPLETION_ROUTINE
void WINAPI DNS_QUERY_COMPLETION_ROUTINE(void *, DNS_QUERY_RESULT *)
#define DNS_ADDR_MAX_SOCKADDR_LENGTH
struct _DNS_QUERY_REQUEST DNS_QUERY_REQUEST
struct _DNS_CACHE_ENTRY * PDNS_CACHE_ENTRY