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 값에 종속됩니다.
queryRecords 는 queryRawResponse와 동일한 레코드를 포함하지만 구조 형식으로 구문 분석됩니다. 그러나 구현에서 알 수 없는 응답에 새 유형의 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 |