Compartilhar via


estrutura DNS_QUERY_RAW_RESULT (windns.h)

Importante

Algumas informações estão relacionadas 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, das informações aqui fornecidas.

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 nas 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. Atualmente, nenhuma é especificada.

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 da 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 erro status e um NULL ponteiro, mas respostas negativas do servidor poderiam 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 DNS_RECORD . Isso contém os mesmos registros que em queryRawResponse, mas analisados em um formato de estrutura.

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

queryRecords contém os mesmos registros que em queryRawResponse, mas analisados em um formato de estrutura. No entanto, se houver um novo tipo de registro DNS na resposta que não é conhecido 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 resultado 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; por exemplo, com registros do cache.

sourceAddr

Tipo: SOCKADDR_INET

O endereço da origem da resposta bruta do DNS.

maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]

Tipo: CHAR[]

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

Requisitos

Requisito Valor
Cabeçalho windns.h