Freigeben über


DnsQuery_A-Funktion (windns.h)

Der Funktionstyp DnsQuery ist die generische Abfrageschnittstelle für den DNS-Namespace und stellt Anwendungsentwicklern eine SCHNITTSTELLE für die DNS-Abfrageauflösung bereit. Wie viele DNS-Funktionen wird auch der DnsQuery-Funktionstyp in mehreren Formen implementiert, um unterschiedliche Zeichencodierungen zu ermöglichen. Verwenden Sie basierend auf der beteiligten Zeichencodierung eine der folgenden Funktionen:

  • DnsQuery_A (für ANSI-Codierung)
  • DnsQuery_W (für Unicode-Codierung)
  • DnsQuery_UTF8 (für UTF-8-Codierung)
Windows 8: Die DnsQueryEx-Funktion sollte verwendet werden, wenn eine Anwendung asynchrone Abfragen für den DNS-Namespace erfordert.

Syntax

DNS_STATUS DnsQuery_A(
  [in]                PCSTR       pszName,
  [in]                WORD        wType,
  [in]                DWORD       Options,
  [in, out, optional] PVOID       pExtra,
  [out, optional]     PDNS_RECORD *ppQueryResults,
  [out, optional]     PVOID       *pReserved
);

Parameter

[in] pszName

Ein Zeiger auf eine Zeichenfolge, die den abzufragenden DNS-Namen darstellt.

[in] wType

Ein -Wert, der den abgefragten DNS-Eintragstyp (Resource Record, RR) darstellt. wType bestimmt das Format der Daten, auf das ppQueryResultsSet verweist. Wenn der Wert von wType beispielsweise DNS_TYPE_A ist, wird das Format der Daten, auf das ppQueryResultsSet verweist, DNS_A_DATA.

[in] Options

Ein -Wert, der eine Bitmap der DNS-Abfrageoptionen enthält, die in der DNS-Abfrage verwendet werden sollen. Optionen können kombiniert werden, und alle Optionen überschreiben DNS_QUERY_STANDARD.

[in, out, optional] pExtra

Dieser Parameter ist für die zukünftige Verwendung reserviert und muss auf NULL festgelegt werden.

[out, optional] ppQueryResults

Optional. Ein Zeiger auf einen Zeiger, der auf die Liste der RRs zeigt, aus denen die Antwort besteht. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

[out, optional] pReserved

Dieser Parameter ist für die zukünftige Verwendung reserviert und muss auf NULL festgelegt werden.

Rückgabewert

Gibt die Erfolgsbestätigung nach erfolgreichem Abschluss zurück. Gibt andernfalls den entsprechenden DNS-spezifischen Fehlercode zurück, wie in Winerror.h definiert.

Hinweise

Anwendungen, die die DnsQuery-Funktion aufrufen, erstellen eine Abfrage mit einem vollqualifizierten DNS-Namen und einem RR-Typ (Resource Record) und legen Abfrageoptionen abhängig vom gewünschten Diensttyp fest. Wenn die Option DNS_QUERY_STANDARD festgelegt ist, verwendet DNS den Resolvercache, fragt zuerst mit UDP ab, führt dann einen Wiederholungsversuch mit TCP durch, wenn die Antwort abgeschnitten wird, und fordert den Server auf, im Auftrag des Clients rekursive Auflösung auszuführen, um die Abfrage aufzulösen.

Anwendungen müssen zurückgegebene RR-Sätze mit der DnsRecordListFree-Funktion freigeben.

Hinweis Beachten Sie beim Aufrufen eines der DnsQuery-Funktionstypen , dass ein DNS-Server möglicherweise mehrere Datensätze als Reaktion auf eine Abfrage zurückgibt. Ein Computer, der mehrfach vernetzt ist, empfängt beispielsweise mehrere A-Einträge für dieselbe IP-Adresse. Der Aufrufer muss so viele der zurückgegebenen Datensätze wie nötig verwenden.
 
Betrachten Sie das folgende Szenario, in dem mehrere zurückgegebene Datensätze zusätzliche Aktivitäten im Namen der Anwendung erfordern: Ein DnsQuery_A Funktionsaufruf wird für einen computer mit mehreren Adressen durchgeführt, und die Anwendung findet, dass die dem ersten A-Datensatz zugeordnete Adresse nicht reagiert. Die Anwendung sollte dann versuchen, andere IP-Adressen zu verwenden, die in den (zusätzlichen) A-Datensätzen angegeben sind, die vom DnsQuery_A Funktionsaufruf zurückgegeben werden.

Wenn der lpstrName-Parameter auf NULL festgelegt ist, schlägt die DnsQuery-Funktion mit dem Fehler INVALID_PARAMETER fehl.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile windns.h
Bibliothek Dnsapi.lib
DLL Dnsapi.dll

Weitere Informationen

DNS_RECORD

DnsQueryEx

DnsRecordListFree