Partager via


fonction DnsQuery_UTF8 (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 dans l’espace de noms DNS.

Syntaxe

DNS_STATUS DnsQuery_UTF8(
  [in]                PCSTR       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 (RR)resource record qui est interrogé. wType détermine le format des données pointées vers 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é à 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é à une utilisation ultérieure et doit être défini sur NULL.

Valeur retournée

Retourne la confirmation de réussite en cas d’achèvement réussi. 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 réessaye avec TCP si la réponse est tronquée et demande au serveur d’effectuer une résolution récursive au nom 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 fonctions DnsQuery , n’oubliez pas qu’un serveur DNS peut retourner plusieurs enregistrements en réponse à une requête. Un ordinateur multirésident, par exemple, recevra 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 à plusieurs emplacements 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 à partir de l’appel de fonction DnsQuery_A .

Si le paramètre lpstrName a la valeur NULL, la fonction DnsQuery échoue avec l’erreur INVALID_PARAMETER.

Configuration requise

   
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