Поделиться через


функция DnsQuery_A (windns.h)

Тип функции DnsQuery является универсальным интерфейсом запросов к пространству имен DNS и предоставляет разработчикам приложений интерфейс разрешения запросов DNS. Как и многие функции DNS, тип функции DnsQuery реализован в нескольких формах для упрощения разной кодировки символов. В зависимости от используемой кодировки символов используйте одну из следующих функций:

  • DnsQuery_A (для кодировки ANSI)
  • DnsQuery_W (для кодировки Юникода)
  • DnsQuery_UTF8 (для кодировки UTF-8)
Windows 8. Функция DnsQueryEx должна использоваться, если приложению требуются асинхронные запросы к пространству имен DNS.

Синтаксис

DNS_STATUS DnsQuery_A(
  [in]                PCSTR       pszName,
  [in]                WORD        wType,
  [in]                DWORD       Options,
  [in, out, optional] PVOID       pExtra,
  [out, optional]     PDNS_RECORD *ppQueryResults,
  [out, optional]     PVOID       *pReserved
);

Параметры

[in] pszName

Указатель на строку, представляющую DNS-имя для запроса.

[in] wType

Значение, представляющее запись ресурсов (RR)тип записи DNS, запрашиваемой. wType определяет формат данных, на который указывает ppQueryResultsSet. Например, если значение wTypeDNS_TYPE_A, формат данных, указывающий на ppQueryResultsSet, DNS_A_DATA.

[in] Options

Значение, содержащее растровое изображение параметры запроса DNS использовать в ЗАПРОСе DNS. Параметры можно объединить, и все параметры переопределяют DNS_QUERY_STANDARD.

[in, out, optional] pExtra

Этот параметр зарезервирован для дальнейшего использования и должен иметь значение NULL.

[out, optional] ppQueryResults

Необязательный. Указатель на указатель, указывающий на список RR, составляющих ответ. Дополнительные сведения см. в разделе "Примечания".

[out, optional] pReserved

Этот параметр зарезервирован для дальнейшего использования и должен иметь значение NULL.

Возвращаемое значение

Возвращает подтверждение успешности после успешного завершения. В противном случае возвращает соответствующий код ошибки, зависящий от DNS, как определено в Winerror.h.

Замечания

Приложения, вызывающие функцию DnsQuery, создают запрос с помощью полного типа DNS-имени и типа записи ресурсов (RR) и задают параметры запроса в зависимости от типа службы. Если установлен параметр DNS_QUERY_STANDARD, DNS использует кэш сопоставителя, запрашивает сначала UDP, а затем повторяет tcp, если ответ усечен, и запрашивает, что сервер выполняет рекурсивное разрешение от имени клиента для разрешения запроса.

Приложения должны освободить возвращенные наборы RR с помощью функции DnsRecordListFree.

Примечание При вызове одного из типов функций DnsQuery DnsQue ry следует учитывать, что DNS-сервер может возвращать несколько записей в ответ на запрос. Например, компьютер с несколькими адресами получит несколько записей A для одного IP-адреса. Вызывающий объект должен использовать столько возвращаемых записей, сколько необходимо.
 
Рассмотрим следующий сценарий, в котором для нескольких возвращенных записей требуется дополнительное действие от имени приложения: вызов функции DnsQuery_A выполняется для многодомного компьютера, и приложение обнаруживает, что адрес, связанный с первой записью A, не отвечает. Затем приложение должно попытаться использовать другие IP-адреса, указанные в (дополнительном) записи A, возвращенные из вызова функции DnsQuery_A.

Если параметр lpstrName имеет значение NULLNULL, функция DnsQuery завершается ошибкой INVALID_PARAMETER.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка windns.h
библиотеки Dnsapi.lib
DLL Dnsapi.dll

См. также

DNS_RECORD

DnsQueryEx

DnsRecordListFree