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
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
Numero di byte nel buffer di risposta non elaborato DNS a cui punta queryRawResponse.
queryRawResponse
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
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 |