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
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
Contagem de bytes no buffer de resposta bruta DNS apontado por queryRawResponse.
queryRawResponse
Tipo:
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
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
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 |