Partilhar via


estrutura DNS_QUERY_RAW_RESULT (windns.h)

Importante

Algumas informações referem-se a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui.

Representa um resultado de consulta bruta DNS (consulte DNS_QUERY_RAW_COMPLETION_ROUTINE).

Sintaxe

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;

Membros

version

Tipo: ULONG

A versão dessa estrutura. Isso corresponde ao que foi definido em DNS_QUERY_RAW_REQUEST::resultsVersion. Atualmente, existe apenas DNS_QUERY_RAW_RESULT_VERSION1 (0x1).

queryStatus

Tipo: DNS_STATUS

O status da consulta.

queryOptions

Tipo: ULONG64

Opções de consulta que foram usadas nesta consulta. Devido à configuração do sistema, elas podem ser diferentes das opções de consulta fornecidas na solicitação. As opções atuais são definidas em opções de consulta DNS.

queryRawOptions

Tipo: ULONG64

Opções adicionais que foram aplicadas à consulta bruta. Consulte também DNS_QUERY_RAW_REQUEST::queryRawOptions.

responseFlags

Tipo: ULONG64

Sinalizadores adicionais sobre a resposta da consulta. No momento, nenhum é especificado.

queryRawResponseSize

Tipo: ULONG

Contagem de bytes no buffer de resposta bruta DNS apontado por queryRawResponse.

queryRawResponse

Tipo: BYTE

Ponteiro para um buffer que contém a representação de transmissão da resposta de consulta DNS – um cabeçalho de 12 bytes seguido por um número variável de registros. Esse buffer é de tamanho queryRawResponseSize bytes.

O ponteiro pode ou não ser válido dependendo de queryStatus. Erros de DNS internos produziriam um status de erro e um ponteiro NULL, mas respostas negativas do servidor podem produzir status de erro e um ponteiro válido. Se o queryStatus for ERROR_SUCCESS, o ponteiro será válido.

queryRecords

Tipo: PDNS_RECORD

Ponteiro para uma estrutura de DNS_RECORD. Isso contém os mesmos registros de queryRawResponse, mas analisados em um formato de estrutura.

Esse ponteiro é válido das mesmas maneiras que queryRawResponse, em que depende do valor queryStatus.

queryRecords contém os mesmos registros de queryRawResponse, mas analisados em um formato de estrutura. No entanto, se houver um novo tipo de registro DNS na resposta que não é conhecida pela implementação, isso não estará presente em queryRecords; mas estará presente em queryRawResponse.

protocol

Tipo: ULONG

O protocolo DNS usado para a resposta da consulta. Isso não corresponde necessariamente ao protocolo em DNS_QUERY_RAW_REQUEST porque o sistema DNS pode ter alterado o protocolo de consulta de saída com base na configuração. A resposta da consulta será modificada, se necessário, para corresponder ao protocolo na solicitação para que o comportamento visto pelo chamador seja contínuo. Um valor de DNS_PROTOCOL_NO_WIRE indica que os registros de resultados e os dados foram produzidos internamente e o sistema DNS não enviou uma consulta na transmissão.

Os valores possíveis incluem:

  • DNS_PROTOCOL_UNSPECIFIED (0x0). A consulta foi concluída sem receber uma resposta; como em um cancelamento.
  • DNS_PROTOCOL_UDP (0x1).
  • DNS_PROTOCOL_TCP (0x2).
  • DNS_PROTOCOL_DOH (0x3).
  • DNS_PROTOCOL_DOT (0x4).
  • DNS_PROTOCOL_NO_WIRE (0x5). A consulta foi concluída embutida; como com registros do cache.

sourceAddr

Tipo: SOCKADDR_INET

O endereço da origem da resposta bruta DNS.

maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]

Tipo: char[]

O endereço da origem da resposta bruta DNS. Você pode usar a matriz de maxSa no código que não tem o tipo de SOCKADDR_INET definido.

Requisitos

Requisito Valor
cabeçalho windns.h