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 |