fonction DnsQuery_A (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é dans plusieurs formulaires pour faciliter l’encodage de caractères différent. 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_A(
  [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 l’enregistrement de ressource (RR)type d’enregistrement DNS 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 de 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

Optionnel. Pointeur vers un pointeur qui pointe vers la liste des RR qui composent la réponse. Pour plus d’informations, consultez la section Remarques.

[out, optional] pReserved

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

Valeur de retour

Retourne la confirmation de réussite lors de la réussite. Sinon, retourne le code d’erreur propre au 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 RR (Resource Record), puis 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, les requêtes 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.

Remarque Lors de l’appel de l’un des types de fonctions dnsQuery , n’oubliez pas qu’un serveur DNS peut renvoyer plusieurs enregistrements en réponse à une requête. Un ordinateur multihomed, 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 multihomed et l’application trouve 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 retournés à partir de 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête windns.h
bibliothèque Dnsapi.lib
DLL Dnsapi.dll

Voir aussi

DNS_RECORD

DnsQueryEx

dnsRecordListFree