DnsQuery_A Funktion (windns.h)

Der DnsQuery Funktionstyp ist die generische Abfrageschnittstelle für den DNS-Namespace und stellt Anwendungsentwicklern eine DNS-Abfrageauflösungsschnittstelle zur Verfügung. Wie viele DNS-Funktionen wird der DnsQuery Funktionstyp in mehreren Formen implementiert, um die unterschiedliche Zeichencodierung zu erleichtern. Verwenden Sie basierend auf der verwendeten Zeichencodierung eine der folgenden Funktionen:

  • DnsQuery_A (für DIE 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 zu abfragenden DNS-Namen darstellt.

[in] wType

Ein Wert, der den Ressourceneintrag (Resource Record, RR)DNS-Eintragstyp darstellt, abgefragt wird. wType- bestimmt das Format der Daten, auf die durch ppQueryResultsSet-verwiesen wird. Wenn beispielsweise der Wert von wType-DNS_TYPE_Aist, ist das Format der Daten, auf die ppQueryResultsSet verweist,DNS_A_DATAist.

[in] Options

Ein Wert, der eine Bitmap 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

Wahlfrei. Ein Zeiger auf einen Zeiger, der auf die Liste der RRs verweist, die die Antwort umfassen. Weitere Informationen finden Sie im Abschnitt "Hinweise".

[out, optional] pReserved

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

Rückgabewert

Gibt eine Erfolgsbestätigung nach erfolgreichem Abschluss zurück. Andernfalls wird der entsprechende DNS-spezifische Fehlercode wie in Winerror.h definiert zurückgegeben.

Bemerkungen

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, wiederholt dann TCP, wenn die Antwort abgeschnitten wird, und fordert den Server auf, rekursive Auflösung im Auftrag des Clients auszuführen, um die Abfrage aufzulösen.

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

Hinweis Beachten Sie beim Aufrufen eines der DnsQuery Funktionstypen, dass ein DNS-Server möglicherweise mehrere Einträge als Reaktion auf eine Abfrage zurückgibt. Ein Computer, der multihomed ist, empfängt z. B. mehrere A-Einträge für dieselbe IP-Adresse. Der Aufrufer muss beliebig viele der zurückgegebenen Datensätze verwenden.
 
Beachten Sie das folgende Szenario, in dem mehrere zurückgegebene Datensätze zusätzliche Aktivitäten im Auftrag der Anwendung erfordern: Für einen mehrhomed-Computer wird ein funktionsaufruf DnsQuery_A durchgeführt, und die Anwendung findet, dass die adresse, die dem ersten A-Datensatz zugeordnet ist, nicht reagiert. Die Anwendung sollte dann versuchen, andere IP-Adressen zu verwenden, die in den (zusätzlichen) A-Einträgen angegeben sind, die vom DnsQuery_A Funktionsaufruf zurückgegeben werden.

Wenn der parameter lpstrName auf NULL-festgelegt ist, schlägt die DnsQuery-Funktion mit dem Fehler INVALID_PARAMETERfehl.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- windns.h
Library Dnsapi.lib
DLL- Dnsapi.dll

Siehe auch

DNS_RECORD

DnsQueryEx-

DnsRecordListFree-