Condividi tramite


struttura DNS_QUERY_RAW_RESULT (windns.h)

Importante

Alcune informazioni riguardano un prodotto in versione preliminare che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non fornisce alcuna garanzia, espressa o implicita, in relazione alle informazioni fornite qui.

Rappresenta un risultato di query non elaborato DNS (vedere DNS_QUERY_RAW_COMPLETION_ROUTINE).

Sintassi

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;

Membri

version

Tipo: ULONG

Versione di questa struttura. Corrisponde a ciò che è stato impostato in DNS_QUERY_RAW_REQUEST::resultsVersion. Attualmente esiste solo DNS_QUERY_RAW_RESULT_VERSION1 (0x1).

queryStatus

Tipo: DNS_STATUS

Stato della query.

queryOptions

Tipo: ULONG64

Opzioni di query usate in questa query. A causa della configurazione di sistema, queste opzioni potrebbero essere diverse dalle opzioni di query fornite nella richiesta. Le opzioni correnti sono definite nelle opzioni di query DNS .

queryRawOptions

Tipo: ULONG64

Opzioni aggiuntive applicate alla query non elaborata. Vedere anche DNS_QUERY_RAW_REQUEST::queryRawOptions.

responseFlags

Tipo: ULONG64

Flag aggiuntivi sulla risposta alla query. Attualmente non è specificato alcun valore.

queryRawResponseSize

Tipo: ULONG

Numero di byte nel buffer di risposta non elaborato DNS a cui punta queryRawResponse.

queryRawResponse

Tipo: * BYTE

Puntatore a un buffer contenente la rappresentazione in transito della risposta di query DNS, un'intestazione a 12 byte seguita da un numero variabile di record. Questo buffer è di dimensioni queryRawResponseSize byte.

Il puntatore potrebbe o non essere valido a seconda di queryStatus. Gli errori DNS interni generano uno stato di errore e un puntatore NULL, ma le risposte negative dal server potrebbero produrre lo stato di errore e un puntatore valido. Se queryStatus è ERROR_SUCCESS, il puntatore è valido.

queryRecords

Tipo: PDNS_RECORD

Puntatore a una struttura DNS_RECORD. Contiene gli stessi record di queryRawResponse, ma analizzati in un formato di struttura.

Questo puntatore è valido negli stessi modi in cui queryRawResponse, in cui dipende dal valore queryStatus.

queryRecords contiene gli stessi record di queryRawResponse, ma analizzati in un formato di struttura. Tuttavia, se nella risposta è presente un nuovo tipo di record DNS non noto dall'implementazione, questo non sarà presente in queryRecords; ma sarà presente in queryRawResponse.

protocol

Tipo: ULONG

Protocollo DNS usato per la risposta di query. Questo non corrisponde necessariamente al protocollo in DNS_QUERY_RAW_REQUEST perché il sistema DNS potrebbe aver modificato il protocollo di query in uscita in base alla configurazione. La risposta alla query verrà modificata, se necessario, in modo che corrisponda al protocollo nella richiesta in modo che il comportamento visualizzato dal chiamante sia facile. Un valore di DNS_PROTOCOL_NO_WIRE indica che i record e i dati dei risultati sono stati prodotti internamente e che il sistema DNS non ha inviato una query in transito.

I valori possibili includono:

  • DNS_PROTOCOL_UNSPECIFIED (0x0). La query è stata completata senza ricevere una risposta; ad esempio in un annullamento.
  • DNS_PROTOCOL_UDP (0x1).
  • DNS_PROTOCOL_TCP (0x2).
  • DNS_PROTOCOL_DOH (0x3).
  • DNS_PROTOCOL_DOT (0x4).
  • DNS_PROTOCOL_NO_WIRE (0x5). La query è stata completata inline; ad esempio con i record della cache.

sourceAddr

Tipo: SOCKADDR_INET

Indirizzo dell'origine della risposta non elaborata DNS.

maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]

Tipo: CHAR[]

Indirizzo dell'origine della risposta non elaborata DNS. È possibile usare la matrice maxSa nel codice che non dispone del tipo SOCKADDR_INET definito.

Fabbisogno

Requisito Valore
intestazione windns.h