DNS_QUERY_RAW_REQUEST 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 eine DNS-Rohabfrageanforderung dar (siehe DnsQueryRaw).
Syntax
typedef struct _DNS_QUERY_RAW_REQUEST {
ULONG version;
ULONG resultsVersion;
ULONG dnsQueryRawSize;
BYTE *dnsQueryRaw;
PWSTR dnsQueryName;
USHORT dnsQueryType;
ULONG64 queryOptions;
ULONG interfaceIndex;
DNS_QUERY_RAW_COMPLETION_ROUTINE queryCompletionCallback;
VOID *queryContext;
ULONG64 queryRawOptions;
ULONG customServersSize;
DNS_CUSTOM_SERVER *customServers;
ULONG protocol;
union {
SOCKADDR_INET sourceAddr;
CHAR maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH];
};
} DNS_QUERY_RAW_REQUEST;
Member
version
Typ: ULONG
Die Version dieser Struktur. Derzeit ist nur DNS_QUERY_RAW_REQUEST_VERSION1 (0x1) vorhanden.
resultsVersion
Typ: ULONG
Die angeforderte Version der DNS_QUERY_RAW_RESULT Struktur, die im Abschlussrückruf zurückgegeben wurde. Derzeit ist nur DNS_QUERY_RAW_RESULT_VERSION1 (0x1) vorhanden.
dnsQueryRawSize
Typ: ULONG
Größe des DNS-Rohabfragepuffers in Bytes, auf den von dnsQueryRaw verwiesen wird.
dnsQueryRaw
Typ: BYTE*
Zeiger auf den Puffer, der die DNS-Rohabfrage enthält. Dieser Puffer enthält die Drahtdarstellung einer DNS-Abfrage – einen 12-Byte-Header gefolgt vom Frageabschnitt. Dieser Puffer gehört dem Aufrufer und muss nur beibehalten werden, bis DnsQueryRaw zurückgibt.
dnsQueryName
Typ: PWSTR
Zeiger auf eine Zeichenfolge, die den zu abfragenden DNS-Namen darstellt, der in Verbindung mit dnsQueryType verwendet wird. Wenn dieser Wert vorhanden ist, wird er anstelle von dnsQueryRaw verwendet.
dnsQueryType
Typ: USHORT
Wert, der den DNS-Eintragstyp der Abfrage darstellt, der in Verbindung mit dnsQueryName verwendet wird. Diese Werte werden in DNS-Datensatztypen dokumentiert.
queryOptions
Typ: ULONG64
Zu verwendende Abfrageoptionen. Verwendet dieselben Abfrageoptionen von DnsQueryEx, wie in DNS-Abfrageoptionen dokumentiert.
interfaceIndex
Typ: ULONG
Der Schnittstellenindex, über den die Abfrage gesendet werden soll. Wenn 0, werden alle Schnittstellen verwendet.
queryCompletionCallback
Typ: DNS_QUERY_RAW_COMPLETION_ROUTINE
Zeiger auf eine Rückruffunktion, die aufgerufen wird, wenn die Abfrage abgeschlossen ist. Dieses Feld ist erforderlich.
queryContext
Typ: VOID*
Zeiger auf einen Benutzerkontext. Dies wird als Parameter im queryCompletionCallback-Aufruf bereitgestellt. Dieses Feld ist erforderlich.
queryRawOptions
Typ: ULONG64
Zusätzliche Optionen zum Ändern der rohen Abfrage.
DNS_QUERY_RAW_OPTION_BEST_EFFORT_PARSE (0x1). Gibt an, dass die rohe Abfrage optimal analysiert werden soll. Das bedeutet, dass DnsQueryRaw nicht fehlschlägt, wenn eine Unformatierte Eingabeabfrage anders formatiert ist als erwartet (z. B. neue Datensatztypen oder Headerbits, die der Implementierung nicht bekannt sind), wenn die erforderlichen Informationen, einschließlich abfragename und -typ, extrahiert werden können. Dies führt dazu, dass die an den Server gesendete Abfrage effektiv eine Teilmenge der Abfrage des Aufrufers in Bezug auf die Konfiguration ist.
customServersSize
Typ: ULONG
Die Anzahl der benutzerdefinierten Server, auf die von customServers verwiesen wird.
customServers
Typ: DNS_CUSTOM_SERVER*
Zeiger auf ein Array benutzerdefinierter Server der Größe customServerSize. Dieser Zeiger kann sein NULL
. In diesem Fall muss customServersSize 0 sein. Andernfalls NULL
muss dieser Zeiger beibehalten werden, bis der DnsQueryRaw-Aufruf zurückgibt.
protocol
Typ: ULONG
Das DNS-Protokoll, das für die Quellabfrage in dnsQueryRaw verwendet wird, und was der Aufrufer erwartet, in dem die Antwort enthalten sein soll. Sie können dies verwenden, um eine DNS-Abfrageantwort so zu ändern, dass sie der ursprünglichen Abfrage entspricht, unabhängig davon, welches Protokoll vom dns-System darunter verwendet wird. Wenn der Aufrufer beispielsweise UDP angibt und die DNS-Systeme sich für die Verwendung von DNS über HTTPS (DoH) entscheiden und eine Antwort erhält, die größer ist, als UDP zulässt, schneidet die API das Paket entsprechend dem Verhalten ab, mit dem ein UDP-Server antwortet, wenn das Ergebnis zu groß ist. Wenn TCP vom Aufrufer angefordert wird, muss dem Paket die 2-Byte-Länge vorangestellt werden, wie in Abschnitt 4.2.2 von RFC 1035 angegeben.
Die zulässigen Werte sind DNS_PROTOCOL_UDP (0x1) und DNS_PROTOCOL_TCP (0x2).
sourceAddr
Typ: SOCKADDR_INET
Die Adresse der Quelle der DNS-Rohabfrage.
maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]
Typ: CHAR[]
Die Adresse der Quelle der DNS-Rohabfrage. 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 |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für