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 |