Freigeben über


DNS_QUERY_RAW_RESULT Struktur (windns.h)

Wichtig

Einige Informationen beziehen sich auf ein Vorabrelease-Produkt, das vor der kommerziellen Freigabe erheblich geändert werden kann. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.

Stellt ein DNS-Rohabfrageergebnis dar (siehe DNS_QUERY_RAW_COMPLETION_ROUTINE).

Syntax

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;

Member

version

Typ: ULONG

Die Version dieser Struktur. Dies entspricht dem, was in DNS_QUERY_RAW_REQUEST::resultsVersion festgelegt wurde. Derzeit ist nur DNS_QUERY_RAW_RESULT_VERSION1 (0x1) vorhanden.

queryStatus

Typ: DNS_STATUS

Die status der Abfrage.

queryOptions

Typ: ULONG64

Abfrageoptionen, die in dieser Abfrage verwendet wurden. Aufgrund der Systemkonfiguration unterscheiden sich diese möglicherweise von den Abfrageoptionen, die Sie in der Anforderung angegeben haben. Die aktuellen Optionen werden in DNS-Abfrageoptionen definiert.

queryRawOptions

Typ: ULONG64

Zusätzliche Optionen, die auf die Rohdatenabfrage angewendet wurden. Siehe auch DNS_QUERY_RAW_REQUEST::queryRawOptions.

responseFlags

Typ: ULONG64

Zusätzliche Flags zur Abfrageantwort. Derzeit sind keine angegeben.

queryRawResponseSize

Typ: ULONG

Anzahl der Bytes im DNS-Rohantwortpuffer, auf den von queryRawResponse verwiesen wird.

queryRawResponse

Typ: BYTE*

Zeiger auf einen Puffer, der die Drahtdarstellung der DNS-Abfrageantwort enthält– einen 12-Byte-Header gefolgt von einer variablen Anzahl von Datensätzen. Dieser Puffer hat die Größe queryRawResponseSize Bytes.

Der Zeiger kann abhängig von queryStatus gültig sein oder nicht. Interne DNS-Fehler würden einen Fehler status und einen NULL Zeiger erzeugen, aber negative Antworten vom Server können fehler status und einen gültigen Zeiger erzeugen. Wenn queryStatus ERROR_SUCCESS ist, ist der Zeiger gültig.

queryRecords

Typ: PDNS_RECORD

Zeiger auf eine DNS_RECORD-Struktur . Dies enthält dieselben Datensätze wie in queryRawResponse, wird aber in ein Strukturformat analysiert.

Dieser Zeiger ist auf die gleiche Weise gültig wie queryRawResponse, wobei er vom queryStatus-Wert abhängig ist.

queryRecords enthält dieselben Datensätze wie in queryRawResponse, aber in ein Strukturformat analysiert. Wenn die Antwort jedoch einen neuen Typ von DNS-Eintrag enthält, der von der Implementierung nicht bekannt ist, ist dieser in queryRecords nicht vorhanden. sie ist jedoch in queryRawResponse vorhanden.

protocol

Typ: ULONG

Das DNS-Protokoll, das für die Abfrageantwort verwendet wird. Dies stimmt nicht unbedingt mit dem Protokoll in DNS_QUERY_RAW_REQUEST überein , da das DNS-System das ausgehende Abfrageprotokoll möglicherweise basierend auf der Konfiguration geändert hat. Die Abfrageantwort wird bei Bedarf so geändert, dass sie dem Protokoll in der Anforderung entspricht, sodass das vom Aufrufer angezeigte Verhalten nahtlos ist. Der Wert DNS_PROTOCOL_NO_WIRE gibt an, dass die Ergebnisdatensätze und -daten intern erstellt wurden und das DNS-System keine Abfrage über die Verbindung gesendet hat.

Mögliche Werte sind:

  • DNS_PROTOCOL_UNSPECIFIED (0x0). Die Abfrage wurde abgeschlossen, ohne eine Antwort zu erhalten; z. B. in einem Abbruch.
  • DNS_PROTOCOL_UDP (0x1).
  • DNS_PROTOCOL_TCP (0x2).
  • DNS_PROTOCOL_DOH (0x3).
  • DNS_PROTOCOL_DOT (0x4).
  • DNS_PROTOCOL_NO_WIRE (0x5). Die inline abgeschlossene Abfrage; z. B. mit Datensätzen aus dem Cache.

sourceAddr

Typ: SOCKADDR_INET

Die Adresse der Quelle der DNS-Rohantwort.

maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]

Typ: CHAR[]

Die Adresse der Quelle der DNS-Rohantwort. Sie können das maxSa-Array in Code verwenden, für den der SOCKADDR_INET-Typ nicht definiert ist.

Anforderungen

Anforderung Wert
Header windns.h