DnsQueryEx function (windns.h)
The DnsQueryEx function is the asynchronous generic query interface to the DNS namespace, and provides application developers with a DNS query resolution interface.
Like DnsQuery, DnsQueryEx can be used to make synchronous queries to the DNS namespace as well.
DNS_STATUS DnsQueryEx( [in] PDNS_QUERY_REQUEST pQueryRequest, [in, out] PDNS_QUERY_RESULT pQueryResults, [in, out, optional] PDNS_QUERY_CANCEL pCancelHandle );
[in, out] pQueryResults
A pointer to a DNS_QUERY_RESULT structure that contains the results of the query. On input, the version member of pQueryResults must be DNS_QUERY_REQUEST_VERSION1 and all other members should be NULL. On output, the remaining members will be filled as part of the query complete.
[in, out, optional] pCancelHandle
A pointer to a DNS_QUERY_CANCEL structure that can be used to cancel a pending asynchronous query.
The DnsQueryEx function has the following possible return values:
||The call was successful.|
||Either the pQueryRequest or pQueryRequest parameters are uninitialized or contain the wrong version.|
||The call resulted in an RCODE error.|
||No records in the response.|
||The query will be completed asynchronously.|
If a call to DnsQueryEx completes synchronously (i.e., the function return value is not DNS_REQUEST_PENDING), the pQueryRecords member of pQueryResults contains a pointer to a list of DNS_RECORDS and DnsQueryEx will return either error or success.
The following conditions invoke a synchronous call to DnsQueryEx and do not utilize the DNS callback:
- The DNS_QUERY_COMPLETION_ROUTINE callback is omitted from the pQueryCompleteCallback member of pQueryRequest.
- A query is for the local machine name and A or AAAA type Resource Records (RR).
- A call to DnsQueryEx queries an IPv4 or IPv6 address.
- A call to DnsQueryEx returns in error.
pCancelHandle returned from an asynchronous call to DnsQueryEx and pQueryContext is valid until the DNS_QUERY_COMPLETION_ROUTINE DNS callback is invoked.
|Minimum supported client||Windows 8 [desktop apps only]|
|Minimum supported server||Windows Server 2012 [desktop apps only]|