다음을 통해 공유


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 구조체에 대한 포인터입니다.

참고 이 구조의 pQueryCompleteCallback 멤버에서 DNS_QUERY_COMPLETION_ROUTINE 콜백을 생략하면 DnsQueryEx 동기적으로 호출되지 .
 

[in, out] pQueryResults

쿼리 결과를 포함하는 DNS_QUERY_RESULT 구조체에 대한 포인터입니다. 입력 시 pQueryResults 버전 멤버는 DNS_QUERY_RESULTS_VERSION1 있어야 하며 다른 모든 멤버는 NULL합니다. 출력에서 나머지 멤버는 쿼리 완료의 일부로 채워집니다.

참고 비동기 쿼리의 경우 애플리케이션은 DNS_QUERY_COMPLETION_ROUTINE 콜백이 호출될 때까지 이 구조를 해제하지 않아야 합니다. 쿼리가 완료되면 DNS_QUERY_RESULT 구조에는 DnsRecordListFree사용하여 해제해야 하는 DNS_RECORDS 목록에 대한 포인터가 포함됩니다.
 

[in, out, optional] pCancelHandle

보류 중인 비동기 쿼리를 취소하는 데 사용할 수 있는 DNS_QUERY_CANCEL 구조체에 대한 포인터입니다.

참고 애플리케이션은 DNS_QUERY_COMPLETION_ROUTINE 콜백이 호출될 때까지 이 구조를 해제하지 않아야 합니다.
 

반환 값

DnsQueryEx 함수에는 다음과 같은 가능한 반환 값이 있습니다.

반환 코드 묘사
ERROR_SUCCESS
호출이 성공했습니다.
ERROR_INVALID_PARAMETER
pQueryRequest 또는 pQueryResults 매개 변수가 초기화되지 않았거나 잘못된 버전을 포함합니다.
DNS RCODE
이 호출로 인해 RCODE 오류가 발생했습니다.
DNS_INFO_NO_RECORDS
응답에 레코드가 없습니다.
DNS_REQUEST_PENDING
쿼리는 비동기적으로 완료됩니다.

발언

dnsQueryEx 호출이 동기적으로 완료되면(즉, 함수 반환 값이 DNS_REQUEST_PENDING않음) pQueryResults pQueryRecords 멤버는 DNS_RECORDS 목록에 대한 포인터를 포함하고 dnsQueryEx 오류 또는 성공을 반환합니다.

다음 조건은 dnsQueryEx 동기 호출을 호출하고 DNS 콜백을 활용하지 않습니다.

  • DNS_QUERY_COMPLETION_ROUTINE 콜백은 pQueryRequestpQueryCompleteCallback 멤버에서 생략됩니다.
  • 쿼리는 로컬 컴퓨터 이름 및 A 또는 AAAA 형식 리소스 레코드(RR)입니다.
  • dnsQueryEx 호출은 IPv4 또는 IPv6 주소를 쿼리합니다.
  • dnsQueryEx 호출하면 오류가 반환됩니다.
dnsQueryEx 호출이 비동기적으로 완료되는 경우 쿼리 결과는 pQueryRequestDNS_QUERY_COMPLETION_ROUTINE 콜백에 의해 반환되고, pQueryResults QueryStatus 멤버는 DNS_REQUEST_PENDING포함하고, dnsQueryEx DNS_REQUEST_PENDING반환합니다. 애플리케이션은 DNS 콜백이 성공할 때까지 DnsQueryEx 전달되는 pQueryResults 구조를 추적해야 합니다. 애플리케이션은 DnsQueryEx반환된 pCancelHandle 핸들을 사용하여 비동기 쿼리를 취소할 수 있습니다.

pCancelHandle dnsQueryEx 대한 비동기 호출에서 반환되고 pQueryContext DNS_QUERY_COMPLETION_ROUTINE DNS 콜백이 호출될 때까지 유효합니다.

참고 애플리케이션은 동일한 프로세스 컨텍스트 내에서 DNS_QUERY_COMPLETION_ROUTINE 콜백을 통해 DnsQueryEx 완료를 비동기 알림을 받습니다.
 

요구 사항

요구
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 windns.h
라이브러리 Dnsapi.lib
DLL Dnsapi.dll

참고 항목