Freigeben über


DNS_QUERY_RAW_RESULT Struktur (windns.h)

Wichtig

Einige Informationen beziehen sich auf ein Vorabversionsprodukt, das vor der kommerziellen Veröffentlichung erheblich geändert werden kann. Microsoft übernimmt keine Gewährleistungen, ausdrücklich oder konkludent in Bezug auf die hier bereitgestellten Informationen.

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;

Angehörige

version

Typ: ULONG-

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

queryStatus

Typ: DNS_STATUS

Der 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-Abfrageoptionendefiniert.

queryRawOptions

Typ: ULONG64

Zusätzliche Optionen, die auf die rohe Abfrage 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 die durch queryRawResponseverwiesen wird.

queryRawResponse

Typ: BYTE-*

Zeigen Sie 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 ist größe queryRawResponseSize Bytes.

Der Zeiger ist je nach queryStatus-möglicherweise gültig oder nicht gültig. Interne DNS-Fehler würden einen Fehlerstatus und einen NULL Zeiger erzeugen, aber negative Antworten vom Server könnten fehlerstatus und einen gültigen Zeiger erzeugen. Wenn der queryStatus ERROR_SUCCESSist, ist der Zeiger gültig.

queryRecords

Typ: PDNS_RECORD

Zeiger auf eine DNS_RECORD Struktur. Dies enthält dieselben Datensätze wie in queryRawResponse, 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 es jedoch einen neuen Dns-Eintragstyp in der Antwort gibt, die von der Implementierung nicht bekannt ist, ist dies in queryRecordsnicht vorhanden; aber es wird in queryRawResponsevorhanden sein.

protocol

Typ: ULONG-

Das FÜR die Abfrageantwort verwendete DNS-Protokoll. Dies stimmt nicht unbedingt mit dem Protokoll in DNS_QUERY_RAW_REQUEST überein, da das DNS-System möglicherweise das ausgehende Abfrageprotokoll basierend auf der Konfiguration geändert hat. Die Abfrageantwort wird bei Bedarf geändert, um das Protokoll in der Anforderung abzugleichen, sodass das vom Aufrufer angezeigte Verhalten nahtlos ist. Ein Wert von DNS_PROTOCOL_NO_WIRE gibt an, dass die Ergebniseinträge und -daten intern erstellt wurden und das DNS-System keine Abfrage an die Leitung gesendet hat.

Mögliche Werte sind:

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

sourceAddr

Typ: SOCKADDR_INET

Die Adresse der Quelle der DNS-rohen Antwort.

maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]

Typ: CHAR-[]

Die Adresse der Quelle der DNS-rohen Antwort. Sie können das maxSa Array im Code verwenden, der den SOCKADDR_INET Typ nicht definiert hat.

Anforderungen

Anforderung Wert
Header- windns.h