Функция DnsQueryEx (windns.h)
Функция DnsQueryEx — это асинхронный универсальный интерфейс запроса к пространству имен DNS. Он предоставляет разработчикам приложений интерфейс разрешения запросов DNS.
Как и DnsQuery, можно использовать DnsQueryEx для синхронных запросов к пространству имен DNS.
Синтаксис
DNS_STATUS DnsQueryEx(
[in] PDNS_QUERY_REQUEST pQueryRequest,
[in, out] PDNS_QUERY_RESULT pQueryResults,
[in, out, optional] PDNS_QUERY_CANCEL pCancelHandle
);
Параметры
[in] pQueryRequest
Указатель на структуру DNS_QUERY_REQUEST или DNS_QUERY_REQUEST3, содержащую сведения о запросе.
[in, out] pQueryResults
Указатель на структуру DNS_QUERY_RESULT, содержащую результаты запроса. Во входных данных
[in, out, optional] pCancelHandle
Указатель на структуру DNS_QUERY_CANCEL, которую можно использовать для отмены ожидающего асинхронного запроса.
Возвращаемое значение
Функция DnsQueryEx имеет следующие возможные возвращаемые значения:
Возвращаемый код | Описание |
---|---|
|
Звонок был успешным. |
|
Параметры pQueryRequest или pQueryRequest неинициализированы или содержат неправильную версию. |
|
Вызов привел к ошибке RCODE. |
|
Нет записей в ответе. |
|
Запрос будет выполнен асинхронно. |
Замечания
Если вызов DnsQueryEx выполняется синхронно (т. е. возвращаемое значение функции не DNS_REQUEST_PENDING), pQueryRecords член pQueryResults содержит указатель на список DNS_RECORDS и DnsQueryEx вернет ошибку или успешное выполнение.
Следующие условия вызывают синхронный вызов DnsQueryEx и не используют обратный вызов DNS:
- Обратный вызов DNS_QUERY_COMPLETION_ROUTINE опущен из pQueryCompleteCallback члена pQueryRequest.
- Запрос — это имя локального компьютера и A или AAAA типа Resource Records (RR).
- Вызов DnsQueryEx запрашивает IPv4 или IPv6-адрес.
- Вызов DnsQueryEx возвращается в ошибке.
pCancelHandle возвращается из асинхронного вызова DnsQueryEx и pQueryContext до вызова обратного вызова DNS DNS_QUERY_COMPLETION_ROUTINE.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 8 [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2012 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | windns.h |
библиотеки |
Dnsapi.lib |
DLL | Dnsapi.dll |