다음을 통해 공유


DNS_QUERY_RAW_RESULT 구조체(windns.h)

중요

일부 정보는 상용 출시 전에 실질적으로 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.

DNS 원시 쿼리 결과를 나타냅니다( DNS_QUERY_RAW_COMPLETION_ROUTINE 참조).

구문

typedef struct _DNS_QUERY_RAW_RESULT {
  ULONG       version;
  DNS_STATUS  queryStatus;
  ULONG64     queryOptions;
  ULONG64     queryRawOptions;
  ULONG64     responseFlags;
  ULONG       queryRawResponseSize;
  BYTE        *queryRawResponse;
  PDNS_RECORD queryRecords;
  ULONG       protocol;
  union {
    SOCKADDR_INET sourceAddr;
    CHAR          maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH];
  };
} DNS_QUERY_RAW_RESULT;

멤버

version

형식: ULONG

이 구조체의 버전입니다. 이는 DNS_QUERY_RAW_REQUEST::resultsVersion에 설정된 항목과 일치합니다. 현재 는 DNS_QUERY_RAW_RESULT_VERSION1 (0x1)만 존재합니다.

queryStatus

형식: DNS_STATUS

쿼리의 상태.

queryOptions

형식: ULONG64

이 쿼리에 사용된 쿼리 옵션입니다. 시스템 구성으로 인해 요청에서 제공한 쿼리 옵션과 다를 수 있습니다. 현재 옵션은 DNS 쿼리 옵션에 정의되어 있습니다.

queryRawOptions

형식: ULONG64

원시 쿼리에 적용된 추가 옵션입니다. 또한 DNS_QUERY_RAW_REQUEST::queryRawOptions를 참조하세요.

responseFlags

형식: ULONG64

쿼리 응답에 대한 추가 플래그입니다. 현재는 지정되지 않습니다.

queryRawResponseSize

형식: ULONG

queryRawResponse가 가리키는 DNS 원시 응답 버퍼의 바이트 수입니다.

queryRawResponse

형식: BYTE*

DNS 쿼리 응답의 유선 표현을 포함하는 버퍼에 대한 포인터로, 12 바이트 헤더와 가변적인 수의 레코드를 잇습니다. 이 버퍼의 크기는 queryRawResponseSize 바이트입니다.

queryStatus에 따라 포인터가 유효하지 않을 수도 있고 유효하지 않을 수도 있습니다. 내부 DNS 오류는 오류 상태 및 포인터를 NULL 생성하지만 서버의 음수 응답은 오류 상태 유효한 포인터를 생성할 수 있습니다. queryStatus가 ERROR_SUCCESS 경우 포인터가 유효합니다.

queryRecords

형식: PDNS_RECORD

DNS_RECORD 구조체에 대한 포인터입니다. 여기에는 queryRawResponse와 동일한 레코드가 포함되지만 구조체 형식으로 구문 분석됩니다.

이 포인터는 queryRawResponse와 동일한 방식으로 유효하며, 여기서 queryStatus 값에 종속됩니다.

queryRecordsqueryRawResponse와 동일한 레코드를 포함하지만 구조 형식으로 구문 분석됩니다. 그러나 구현에서 알 수 없는 응답에 새 유형의 DNS 레코드가 있는 경우 queryRecords에 표시되지 않습니다. 하지만 queryRawResponse에 표시됩니다.

protocol

형식: ULONG

쿼리 응답에 사용되는 DNS 프로토콜입니다. DNS 시스템이 구성에 따라 나가는 쿼리 프로토콜을 변경했을 수 있으므로 DNS_QUERY_RAW_REQUEST 프로토콜과 반드시 일치하는 것은 아닙니다. 필요한 경우 호출자가 볼 수 있는 동작이 원활하게 작동하도록 요청의 프로토콜과 일치하도록 쿼리 응답이 수정됩니다. DNS_PROTOCOL_NO_WIRE 값은 결과 레코드 및 데이터가 내부적으로 생성되었고 DNS 시스템이 유선으로 쿼리를 보내지 않았음을 나타냅니다.

가능한 값은 다음과 같습니다.

  • DNS_PROTOCOL_UNSPECIFIED (0x0). 응답을 받지 않고 쿼리가 완료되었습니다. 을 취소하는 경우와 같습니다.
  • DNS_PROTOCOL_UDP (0x1).
  • DNS_PROTOCOL_TCP (0x2).
  • DNS_PROTOCOL_DOH (0x3).
  • DNS_PROTOCOL_DOT (0x4).
  • DNS_PROTOCOL_NO_WIRE (0x5). 쿼리가 인라인으로 완료되었습니다. 예를 들어 캐시의 레코드와 같습니다.

sourceAddr

형식: SOCKADDR_INET

DNS 원시 응답 원본의 주소입니다.

maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]

형식: CHAR[]

DNS 원시 응답 원본의 주소입니다. SOCKADDR_INET 형식이 정의되지 않은 코드에서 maxSa 배열을 사용할 수 있습니다.

요구 사항

요구 사항
헤더 windns.h