DnsQuery_A 함수(windns.h)

DnsQuery 함수 형식은 DNS 네임스페이스에 대한 일반 쿼리 인터페이스이며 애플리케이션 개발자에게 DNS 쿼리 확인 인터페이스를 제공합니다. 많은 DNS 함수와 마찬가지로 DnsQuery 함수 형식은 다양한 문자 인코딩을 용이하게 하기 위해 여러 형식으로 구현됩니다. 관련된 문자 인코딩에 따라 다음 함수 중 하나를 사용합니다.

  • DnsQuery_A (ANSI 인코딩의 경우)
  • DnsQuery_W (유니코드 인코딩의 경우)
  • DnsQuery_UTF8 (UTF-8 인코딩의 경우)
Windows 8: 애플리케이션에 DNS 네임스페이스에 대한 비동기 쿼리가 필요한 경우 DnsQueryEx 함수를 사용해야 합니다.

구문

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 레코드 형식 을 나타내는 값입니다. wTypeppQueryResultsSet에서 가리키는 데이터의 형식을 결정합니다. 예를 들어 wType 값이 DNS_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로 설정해야 합니다.

반환 값

성공적으로 완료되면 성공 확인을 반환합니다. 그렇지 않으면 은 Winerror.h에 정의된 적절한 DNS 관련 오류 코드를 반환합니다.

설명

DnsQuery 함수를 호출하는 애플리케이션은 정규화된 DNS 이름 및 RR(리소스 레코드) 형식을 사용하여 쿼리를 빌드하고 원하는 서비스 유형에 따라 쿼리 옵션을 설정합니다. DNS_QUERY_STANDARD 옵션이 설정되면 DNS는 확인자 캐시를 사용하고, 먼저 UDP로 쿼리한 다음, 응답이 잘리면 TCP를 사용하여 다시 시도하며, 서버가 클라이언트를 대신하여 재귀 확인을 수행하도록 요청하여 쿼리를 resolve.

애플리케이션은 DnsRecordListFree 함수를 사용하여 반환된 RR 집합을 해제해야 합니다.

참고DnsQuery 함수 형식 중 하나를 호출할 때 DNS 서버는 쿼리에 대한 응답으로 여러 레코드를 반환할 수 있습니다. 예를 들어 다중 호스트된 컴퓨터는 동일한 IP 주소에 대해 여러 A 레코드를 받습니다. 호출자는 필요한 만큼 반환된 레코드를 사용해야 합니다.
 
여러 반환된 레코드가 애플리케이션을 대신하여 추가 작업이 필요한 다음 시나리오를 고려합니다. 다중 호스트 컴퓨터에 대해 DnsQuery_A 함수 호출이 수행되고 애플리케이션은 첫 번째 A 레코드와 연결된 주소가 응답하지 않는 것을 발견합니다. 그런 다음 애플리케이션은 (추가) DnsQuery_A 함수 호출에서 반환된 레코드에 지정된 다른 IP 주소를 사용하려고 시도해야 합니다.

lpstrName 매개 변수가 NULL로 설정된 경우 DnsQuery 함수가 오류 INVALID_PARAMETER 실패합니다.

요구 사항

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

추가 정보

DNS_RECORD

DnsQueryEx

DnsRecordListFree