1#ifndef _WINDNS_INCLUDED_
2#define _WINDNS_INCLUDED_
8#define DNS_QUERY_STANDARD 0x0
9#define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x1
10#define DNS_QUERY_USE_TCP_ONLY 0x2
11#define DNS_QUERY_NO_RECURSION 0x4
12#define DNS_QUERY_BYPASS_CACHE 0x8
13#define DNS_QUERY_NO_WIRE_QUERY 0x10
14#define DNS_QUERY_NO_LOCAL_NAME 0x20
15#define DNS_QUERY_NO_HOSTS_FILE 0x40
16#define DNS_QUERY_NO_NETBT 0x80
17#define DNS_QUERY_TREAT_AS_FQDN 0x1000
18#define DNS_QUERY_WIRE_ONLY 0x100
19#define DNS_QUERY_RETURN_MESSAGE 0x200
20#define DNS_QUERY_DONT_RESET_TTL_VALUES 0x100000
21#define DNS_QUERY_RESERVED 0xff000000
23#define DNS_UPDATE_SECURITY_USE_DEFAULT 0x0
24#define DNS_UPDATE_SECURITY_OFF 0x10
25#define DNS_UPDATE_SECURITY_ON 0x20
26#define DNS_UPDATE_SECURITY_ONLY 0x100
27#define DNS_UPDATE_CACHE_SECURITY_CONTEXT 0x200
28#define DNS_UPDATE_TEST_USE_LOCAL_SYS_ACCT 0x400
29#define DNS_UPDATE_FORCE_SECURITY_NEGO 0x800
30#define DNS_UPDATE_RESERVED 0xffff0000
32#define DNS_CONFIG_FLAG_ALLOC TRUE
40#define DNS_TYPE_ZERO 0x0000
41#define DNS_TYPE_A 0x0001
42#define DNS_TYPE_NS 0x0002
43#define DNS_TYPE_MD 0x0003
44#define DNS_TYPE_MF 0x0004
45#define DNS_TYPE_CNAME 0x0005
46#define DNS_TYPE_SOA 0x0006
47#define DNS_TYPE_MB 0x0007
48#define DNS_TYPE_MG 0x0008
49#define DNS_TYPE_MR 0x0009
50#define DNS_TYPE_NULL 0x000a
51#define DNS_TYPE_WKS 0x000b
52#define DNS_TYPE_PTR 0x000c
53#define DNS_TYPE_HINFO 0x000d
54#define DNS_TYPE_MINFO 0x000e
55#define DNS_TYPE_MX 0x000f
56#define DNS_TYPE_TEXT 0x0010
57#define DNS_TYPE_RP 0x0011
58#define DNS_TYPE_AFSDB 0x0012
59#define DNS_TYPE_X25 0x0013
60#define DNS_TYPE_ISDN 0x0014
61#define DNS_TYPE_RT 0x0015
62#define DNS_TYPE_NSAP 0x0016
63#define DNS_TYPE_NSAPPTR 0x0017
64#define DNS_TYPE_SIG 0x0018
65#define DNS_TYPE_KEY 0x0019
66#define DNS_TYPE_PX 0x001a
67#define DNS_TYPE_GPOS 0x001b
68#define DNS_TYPE_AAAA 0x001c
69#define DNS_TYPE_LOC 0x001d
70#define DNS_TYPE_NXT 0x001e
71#define DNS_TYPE_EID 0x001f
72#define DNS_TYPE_NIMLOC 0x0020
73#define DNS_TYPE_SRV 0x0021
74#define DNS_TYPE_ATMA 0x0022
75#define DNS_TYPE_NAPTR 0x0023
76#define DNS_TYPE_KX 0x0024
77#define DNS_TYPE_CERT 0x0025
78#define DNS_TYPE_A6 0x0026
79#define DNS_TYPE_DNAME 0x0027
80#define DNS_TYPE_SINK 0x0028
81#define DNS_TYPE_OPT 0x0029
82#define DNS_TYPE_UINFO 0x0064
83#define DNS_TYPE_UID 0x0065
84#define DNS_TYPE_GID 0x0066
85#define DNS_TYPE_UNSPEC 0x0067
86#define DNS_TYPE_ADDRS 0x00f8
87#define DNS_TYPE_TKEY 0x00f9
88#define DNS_TYPE_TSIG 0x00fa
89#define DNS_TYPE_IXFR 0x00fb
90#define DNS_TYPE_AXFR 0x00fc
91#define DNS_TYPE_MAILB 0x00fd
92#define DNS_TYPE_MAILA 0x00fe
93#define DNS_TYPE_ALL 0x00ff
94#define DNS_TYPE_ANY 0x00ff
96#define DNS_TYPE_WINS 0xff01
97#define DNS_TYPE_WINSR 0xff02
98#define DNS_TYPE_NBSTAT (DNS_TYPE_WINSR)
100#define DNSREC_QUESTION 0
101#define DNSREC_ANSWER 1
102#define DNSREC_AUTHORITY 2
103#define DNSREC_ADDITIONAL 3
105#define DNS_ATMA_MAX_ADDR_LENGTH 20
107#define DNS_ADDR_MAX_SOCKADDR_LENGTH 32
173#if defined(__midl) || defined(__WIDL__)
193#if defined(__midl) || defined(__WIDL__)
526#if defined(__midl) || defined(__WIDL__)
527typedef [switch_type(
unsigned short )]
union DNS_DATAW {
578 DNS_PTR_DATAA PTR,
Ptr,
NS,
Ns,
CNAME,
Cname,
MB,
Mb,
MD,
Md,
MF,
Mf,
MG,
Mg,
MR,
Mr;
611 DNS_PTR_DATAW PTR,
Ptr,
NS,
Ns,
CNAME,
Cname,
MB,
Mb,
MD,
Md,
MF,
Mf,
MG,
Mg,
MR,
Mr;
632#define DNS_RECORD DNS_RECORDW
633#define PDNS_RECORD PDNS_RECORDW
635#define DNS_RECORD DNS_RECORDA
636#define PDNS_RECORD PDNS_RECORDA
644#define DNS_RRSET_INIT(rrset) \
646 PDNS_RRSET _prrset = &(rrset); \
647 _prrset->pFirstRR = NULL; \
648 _prrset->pLastRR = (PDNS_RECORD) &_prrset->pFirstRR; \
651#define DNS_RRSET_ADD(rrset, pnewRR) \
653 PDNS_RRSET _prrset = &(rrset); \
654 PDNS_RECORD _prrnew = (pnewRR); \
655 _prrset->pLastRR->pNext = _prrnew; \
656 _prrset->pLastRR = _prrnew; \
659#define DNS_RRSET_TERMINATE(rrset) \
661 PDNS_RRSET _prrset = &(rrset); \
662 _prrset->pLastRR->pNext = NULL; \
890#define DNS_MINFO_DATA DNS_MINFO_DATAW
891#define PDNS_MINFO_DATA PDNS_MINFO_DATAW
892#define DNS_MX_DATA DNS_MX_DATAW
893#define PDNS_MX_DATA PDNS_MX_DATAW
894#define DNS_NXT_DATA DNS_NXT_DATAW
895#define PDNS_NXT_DATA PDNS_NXT_DATAW
896#define DNS_PTR_DATA DNS_PTR_DATAW
897#define PDNS_PTR_DATA PDNS_PTR_DATAW
898#define DNS_SIG_DATA DNS_SIG_DATAW
899#define PDNS_SIG_DATA PDNS_SIG_DATAW
900#define DNS_SOA_DATA DNS_SOA_DATAW
901#define PDNS_SOA_DATA PDNS_SOA_DATAW
902#define DNS_TXT_DATA DNS_TXT_DATAW
903#define PDNS_TXT_DATA PDNS_TXT_DATAW
904#define DNS_TKEY_DATA DNS_TKEY_DATAW
905#define PDNS_TKEY_DATA PDNS_TKEY_DATAW
906#define DNS_WINSR_DATA DNS_WINSR_DATAW
907#define PDNS_WINSR_DATA PDNS_WINSR_DATAW
908#define DnsAcquireContextHandle DnsAcquireContextHandle_W
909#define DnsModifyRecordsInSet DnsModifyRecordsInSet_W
910#define DnsNameCompare DnsNameCompare_W
911#define DnsQuery DnsQuery_W
912#define DnsReplaceRecordSet DnsReplaceRecordSetW
913#define DnsValidateName DnsValidateName_W
917#define DNS_MINFO_DATA DNS_MINFO_DATAA
918#define PDNS_MINFO_DATA PDNS_MINFO_DATAA
919#define DNS_MX_DATA DNS_MX_DATAA
920#define PDNS_MX_DATA PDNS_MX_DATAA
921#define DNS_NXT_DATA DNS_NXT_DATAA
922#define PDNS_NXT_DATA PDNS_NXT_DATAA
923#define DNS_PTR_DATA DNS_PTR_DATAA
924#define PDNS_PTR_DATA PDNS_PTR_DATAA
925#define DNS_SIG_DATA DNS_SIG_DATAA
926#define PDNS_SIG_DATA PDNS_SIG_DATAA
927#define DNS_SOA_DATA DNS_SOA_DATAA
928#define PDNS_SOA_DATA PDNS_SOA_DATAA
929#define DNS_TXT_DATA DNS_TXT_DATAA
930#define PDNS_TXT_DATA PDNS_TXT_DATAA
931#define DNS_TKEY_DATA DNS_TKEY_DATAA
932#define PDNS_TKEY_DATA PDNS_TKEY_DATAA
933#define DNS_WINSR_DATA DNS_WINSR_DATAA
934#define PDNS_WINSR_DATA PDNS_WINSR_DATAA
935#define DnsAcquireContextHandle DnsAcquireContextHandle_A
936#define DnsModifyRecordsInSet DnsModifyRecordsInSet_A
937#define DnsNameCompare DnsNameCompare_A
938#define DnsQuery DnsQuery_A
939#define DnsReplaceRecordSet DnsReplaceRecordSetA
940#define DnsValidateName DnsValidateName_A
struct _ACPI_EFI_RUNTIME_SERVICES * RT
static const WCHAR Signature[]
#define _Outptr_result_maybenull_
#define _Return_type_success_(c)
#define _Outptr_opt_result_maybenull_
#define _Out_writes_bytes_to_opt_(s, c)
DNS_IP6_ADDRESS Ip6Address
LPWSTR pNameErrorsMailbox
LPWSTR pNameAdministrator
LPWSTR pNamePrimaryServer
CHAR MaxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]
union _DnsAddr::@3303 Data
DWORD DnsAddrUserDword[8]
struct _DnsRecordA * pNext
union _DnsRecordA::@3305 Data
union _DnsRecordA::@3304 Flags
union _DnsRecordW::@3306 Flags
union _DnsRecordW::@3307 Data
struct _DnsRecordW * pNext
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
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_WIRE_RECORD * PDNS_WIRE_RECORD
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
struct _DNS_WIRE_RECORD DNS_WIRE_RECORD
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_WIRE_QUESTION * PDNS_WIRE_QUESTION
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_WIRE_QUESTION DNS_WIRE_QUESTION
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)
#define DNS_ADDR_MAX_SOCKADDR_LENGTH
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