DnsQuery_W, fonction (windns.h)

Le type de fonction DnsQuery est l’interface de requête générique de l’espace de noms DNS et fournit aux développeurs d’applications une interface de résolution de requête DNS. Comme de nombreuses fonctions DNS, le type de fonction DnsQuery est implémenté sous plusieurs formes pour faciliter l’encodage de caractères différents. En fonction de l’encodage de caractères impliqué, utilisez l’une des fonctions suivantes :

  • DnsQuery_A (pour l’encodage ANSI)
  • DnsQuery_W (pour l’encodage Unicode)
  • DnsQuery_UTF8 (pour l’encodage UTF-8)
Windows 8 : la fonction DnsQueryEx doit être utilisée si une application nécessite des requêtes asynchrones sur l’espace de noms DNS.

Syntaxe

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

Paramètres

[in] pszName

Pointeur vers une chaîne qui représente le nom DNS à interroger.

[in] wType

Valeur qui représente le type d’enregistrement DNS (RESOURCE Record)(RR)qui est interrogé. wType détermine le format des données pointées par ppQueryResultsSet. Par exemple, si la valeur de wType est DNS_TYPE_A, le format des données pointées par ppQueryResultsSet est DNS_A_DATA.

[in] Options

Valeur qui contient une bitmap des options de requête DNS à utiliser dans la requête DNS. Les options peuvent être combinées et toutes les options remplacent DNS_QUERY_STANDARD.

[in, out, optional] pExtra

Ce paramètre est réservé pour une utilisation ultérieure et doit être défini sur NULL.

[out, optional] ppQueryResults

facultatif. Pointeur vers un pointeur qui pointe vers la liste des demandes de requête qui composent la réponse. Pour plus d'informations, consultez la section Notes.

[out, optional] pReserved

Ce paramètre est réservé pour une utilisation ultérieure et doit être défini sur NULL.

Valeur retournée

Retourne la confirmation de réussite en cas de réussite. Sinon, retourne le code d’erreur dns approprié tel que défini dans Winerror.h.

Remarques

Les applications qui appellent la fonction DnsQuery créent une requête à l’aide d’un nom DNS complet et d’un type d’enregistrement de ressource (RR), et définissent des options de requête en fonction du type de service souhaité. Lorsque l’option DNS_QUERY_STANDARD est définie, DNS utilise le cache du programme de résolution, interroge d’abord avec UDP, puis retente avec TCP si la réponse est tronquée et demande au serveur d’effectuer une résolution récursive pour le compte du client pour résoudre la requête.

Les applications doivent libérer les jeux RR retournés avec la fonction DnsRecordListFree .

Note Lorsque vous appelez l’un des types de fonction DnsQuery , n’oubliez pas qu’un serveur DNS peut retourner plusieurs enregistrements en réponse à une requête. Un ordinateur multirésident, par exemple, reçoit plusieurs enregistrements A pour la même adresse IP. L’appelant doit utiliser autant d’enregistrements retournés que nécessaire.
 
Considérez le scénario suivant, dans lequel plusieurs enregistrements retournés nécessitent une activité supplémentaire pour le compte de l’application : un appel de fonction DnsQuery_A est effectué pour un ordinateur multi-hébergement et l’application constate que l’adresse associée au premier enregistrement A ne répond pas. L’application doit ensuite tenter d’utiliser d’autres adresses IP spécifiées dans les enregistrements A (supplémentaires) retournés par l’appel de fonction DnsQuery_A .

Si le paramètre lpstrName est défini sur NULL, la fonction DnsQuery échoue avec l’erreur INVALID_PARAMETER.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête windns.h
Bibliothèque Dnsapi.lib
DLL Dnsapi.dll

Voir aussi

DNS_RECORD

DnsQueryEx

DnsRecordListFree