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_)
char * Pad(char *Str, char PadChar, ULONG Length)
DNS_STATUS WINAPI DnsQueryEx()
static const WCHAR Signature[]
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]
DWORD DnsAddrUserDword[8]
union _DnsAddr::@3508 Data
struct _DnsRecordA * pNext
union _DnsRecordA::@3509 Flags
union _DnsRecordA::@3510 Data
union _DnsRecordW::@3512 Data
struct _DnsRecordW * pNext
union _DnsRecordW::@3511 Flags
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