다음을 통해 공유


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것과 동일한 레코드가 포함되지만 구조체 형식으로 구문 분석됩니다.

이 포인터는 queryStatus 값에 종속된 queryRawResponse동일한 방식으로 유효합니다.

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