structure ADDRINFOEX6 (ws2def.h)
La structure addrinfoex4
Syntaxe
typedef struct addrinfoex6 {
int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
size_t ai_addrlen;
PWSTR ai_canonname;
struct sockaddr *ai_addr;
void *ai_blob;
size_t ai_bloblen;
GUID *ai_provider;
struct addrinfoex5 *ai_next;
int ai_version;
PWSTR ai_fqdn;
int ai_interfaceindex;
HANDLE ai_resolutionhandle;
unsigned int ai_ttl;
unsigned int ai_numservers;
ADDRINFO_DNS_SERVER *ai_servers;
ULONG64 ai_responseflags;
} ADDRINFOEX6, *PADDRINFOEX6;
Membres
ai_flags
Indicateurs qui indiquent les options utilisées dans la fonction GetAddrInfoEx.
Les valeurs prises en charge pour le membre
Valeur | Signification |
---|---|
|
L’adresse de socket est utilisée dans un appel à la fonction lier. |
|
Le nom canonique est retourné dans le premier membre ai_canonname. |
|
Le paramètre nodename passé à la fonction GetAddrInfoEx doit être une chaîne numérique. |
|
Si ce bit est défini, une requête est effectuée pour les adresses IPv6 et les adresses IPv4 avec AI_V4MAPPED.
Cette option est prise en charge sur Windows Vista et versions ultérieures. |
|
La GetAddrInfoEx résout uniquement si une adresse globale est configurée. L’adresse de bouclage IPv6 et IPv4 n’est pas considérée comme une adresse globale valide.
Cette option est prise en charge sur Windows Vista et versions ultérieures. |
|
Si l'GetAddrInfoEx demande d’adresses IPv6 échoue, une demande de service de noms est effectuée pour les adresses IPv4 et ces adresses sont converties en format d’adresse IPv4 mappée IPv6.
Cette option est prise en charge sur Windows Vista et versions ultérieures. |
|
Les informations d’adresse proviennent de résultats non faisant autorité.
Lorsque cette option est définie dans le paramètre pHints de GetAddrInfoEx, le fournisseur d’espaces de noms NS_EMAIL retourne les résultats faisant autorité et non faisant autorité. Si cette option n’est pas définie, seuls les résultats faisant autorité sont retournés. Cette option est uniquement prise en charge sur Windows Vista et versions ultérieures pour l’espace de noms NS_EMAIL. |
|
Les informations d’adresse proviennent d’un canal sécurisé.
Si le bit AI_SECURE est défini, le fournisseur d’espaces de noms NS_EMAIL retourne les résultats obtenus avec une sécurité renforcée pour réduire au minimum l’usurpation possible. Lorsque cette option est définie dans le paramètre pHints de GetAddrInfoEx, le fournisseur d’espaces de noms NS_EMAIL retourne uniquement les résultats obtenus avec une sécurité renforcée afin de réduire au minimum l’usurpation possible. Cette option est uniquement prise en charge sur Windows Vista et versions ultérieures pour l’espace de noms NS_EMAIL. |
|
Les informations d’adresse concernent les noms préférés pour la publication avec un espace de noms spécifique.
Lorsque cette option est définie dans le paramètre pHints de GetAddrInfoEx, aucun nom ne doit être fourni dans le paramètre pName et le fournisseur d’espaces de noms NS_EMAIL retourne les noms préférés pour la publication. Cette option est uniquement prise en charge sur Windows Vista et versions ultérieures pour l’espace de noms NS_EMAIL. |
|
Le nom de domaine complet est retourné dans le premier membre ai_fqdn.
Lorsque cette option est définie dans le paramètre pHints de GetAddrInfoEx et qu’un nom plat (étiquette unique) est spécifié dans le paramètre pName, le nom de domaine complet que le nom a finalement résolu sera retourné. Cette option est prise en charge sur Windows 7, Windows Server 2008 R2 et versions ultérieures. |
|
Indicateur du fournisseur d’espaces de noms indiquant que le nom d’hôte interrogé est utilisé dans un scénario de partage de fichiers. Le fournisseur d’espaces de noms peut ignorer cet indicateur.
Cette option est prise en charge sur Windows 7, Windows Server 2008 R2 et versions ultérieures. |
|
Désactivez l’encodage automatique de nom de domaine international à l’aide de Punycode dans les fonctions de résolution de noms appelées par la fonction GetAddrInfoEx.
Cette option est prise en charge sur Windows 8, Windows Server 2012 et versions ultérieures. |
|
Indique que l’objet actuel est étendu : autrement dit, un addrinfoex2 ou supérieur.
Cette option est prise en charge sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures. |
|
Un handle de résolution est retourné dans le membre ai_resolutionhandle.
Cette option est prise en charge sur Windows 10, Windows Server 2016 et versions ultérieures. |
|
Nombre de secondes pendant lesquelles l’enregistrement DNS est valide. Si cet indicateur est présent, la GetAddrInfoEx.paramètre ppResult retourne une liste de structures addrinfoex5, où le membre ai_ttl contiendra la durée de vie individuelle de l’enregistrement DNS. |
|
Par défaut, les serveurs spécifiés dans le membre ai_servers sont utilisés comme secours aux serveurs DNS système. Si cette option est spécifiée, la requête DNS utilise les serveurs personnalisés spécifiés dans ai_server exclusivement. |
|
Demande des informations supplémentaires sur les résultats DNS. Si cet indicateur est présent, le paramètre GetAddrInfoExppResult retourne une liste de structures addrinfoex6, où le membre ai_responseflags contiendra des informations sur l’origine des résultats DNS. |
ai_family
Famille d’adresses.
Les valeurs possibles pour la famille d’adresses sont définies dans le fichier d’en-tête Ws2def.h
Les valeurs actuellement prises en charge sont AF_INET ou AF_INET6, qui sont les formats de famille d’adresses Internet pour IPv4 et IPv6. D’autres options pour la famille d’adresses (AF_NETBIOS pour une utilisation avec NetBIOS, par exemple) sont prises en charge si un fournisseur de services Windows Sockets pour la famille d’adresses est installé. Notez que les valeurs de la famille d’adresses AF_ et des constantes de famille de protocoles PF_ sont identiques (par exemple, AF_INET et PF_INET), afin que l’une ou l’autre constante puisse être utilisée.
Le tableau ci-dessous répertorie les valeurs courantes pour la famille d’adresses, bien que de nombreuses autres valeurs soient possibles.
ai_socktype
Type de socket. Les valeurs possibles pour le type de socket sont définies dans le fichier include Winsock2.h.
Le tableau suivant répertorie les valeurs possibles pour le type de socket pris en charge pour Windows Sockets 2 :
Valeur | Signification |
---|---|
|
Fournit des flux d’octets séquencés, fiables, bidirectionnel et bidirectionnel avec un mécanisme de transmission de données OOB. Utilise le protocole TCP (Transmission Control Protocol) pour la famille d’adresses Internet (AF_INET ou AF_INET6). Si le membre ai_family est AF_IRDA, SOCK_STREAM est le seul type de socket pris en charge. |
|
Prend en charge les datagrammes, qui sont des mémoires tampons non fiables d’une longueur maximale fixe (généralement petite). Utilise le protocole UDP (User Datagram Protocol) pour la famille d’adresses Internet (AF_INET ou AF_INET6). |
|
Fournit un socket brut qui permet à une application de manipuler l’en-tête de protocole de couche supérieure suivante. Pour manipuler l’en-tête IPv4, l’option de socket IP_HDRINCL doit être définie sur le socket. Pour manipuler l’en-tête IPv6, l’option de socket IPV6_HDRINCL doit être définie sur le socket. |
|
Fournit un datagramme de message fiable. Un exemple de ce type est l’implémentation de protocole de multidiffusion multidiffusion pragmatique (PGM) dans Windows, souvent appelée programmation de multidiffusion fiable. |
|
Fournit un paquet de pseudo-flux basé sur des datagrammes. |
Dans Windows Sockets 2, de nouveaux types de sockets ont été introduits. Une application peut découvrir dynamiquement les attributs de chaque protocole de transport disponible via la fonction WSAEnumProtocols. Ainsi, une application peut déterminer le type de socket et les options de protocole possibles pour une famille d’adresses et utiliser ces informations lors de la spécification de ce paramètre. Les définitions de type de socket dans les fichiers d’en-tête Winsock2.h et Ws2def.h seront régulièrement mises à jour en tant que nouveaux types de sockets, familles d’adresses et protocoles définis.
Dans Windows Sockets 1.1, les seuls types de sockets possibles sont SOCK_DATAGRAM et SOCK_STREAM.
ai_protocol
Type de protocole. Les options possibles sont spécifiques à la famille d’adresses et au type de socket spécifiés. Les valeurs possibles pour l'ai_protocol sont définies dans winsock2.h et les fichiers d’en-tête Wsrm.h.
Sur le Kit de développement logiciel (SDK) Windows publié pour Windows Vista et ultérieur, l’organisation des fichiers d’en-tête a changé et ce membre peut être l’une des valeurs du type d’énumération
Si la valeur 0 est spécifiée pour ai_protocol, l’appelant ne souhaite pas spécifier de protocole et le fournisseur de services choisit l'ai_protocol à utiliser. Pour les protocoles autres que IPv4 et IPv6, définissez ai_protocol sur zéro.
Le tableau suivant répertorie les valeurs courantes pour le membre ai_protocol bien que de nombreuses autres valeurs soient possibles.
Si le membre ai_family est AF_IRDA, la ai_protocol doit être 0.
ai_addrlen
Longueur, en octets, de la mémoire tampon pointée par le membre ai_addr.
ai_canonname
Nom canonique de l’hôte.
ai_addr
Pointeur vers une structure sockaddr
ai_blob
Pointeur vers des données utilisées pour retourner des informations d’espace de noms spécifiques au fournisseur associées au nom au-delà d’une liste d’adresses. La longueur, en octets, de la mémoire tampon pointée par ai_blob doit être spécifiée dans le membre ai_bloblen.
ai_bloblen
Longueur, en octets, du membre ai_blob.
ai_provider
Pointeur vers le GUID d’un fournisseur d’espaces de noms spécifique.
ai_next
Pointeur vers la structure suivante dans une liste liée. Ce paramètre est défini sur NULL dans la dernière structure addrinfoex4 d’une liste liée.
ai_version
Numéro de version de cette structure. La valeur actuellement utilisée pour cette version de la structure est 4.
ai_fqdn
Nom de domaine complet de l’hôte.
ai_interfaceindex
Index d’interface, tel que défini par le IP_ADAPTER_ADDRESSES.propriété IfIndex retournée dans GetAdaptersAddresses.
ai_resolutionhandle
Gérer le pointage vers le nom de domaine complet de l’hôte.
ai_ttl
Nombre de secondes pendant lesquelles cet enregistrement DNS est valide.
ai_numservers
Nombre de serveurs DNS personnalisés présents dans le membre ai_servers.
ai_servers
Tableau de N (où N == ai_numservers) ADDRINFO_DNS_SERVER objets. Si ai_numservers est 0, ai_servers doit être NULL .
ai_responseflags
Retourne une bitmap contenant l’une des valeurs suivantes.
Constant | Valeur | Signification |
---|---|---|
AI_DNS_RESPONSE_SECURE | 0x1 | La réponse provient de protocoles sécurisés, tels que DNS-over-HTTPS. |
AI_DNS_RESPONSE_HOSTFILE | 0x2 | La réponse provient des hôtes fichier. |
Remarques
La structure ADDRINFOEX6 est une extension de la structure ADDRINFOEX5. Outre tous les champs de la structure ADDRINFOEX5, il contient les membres ai_numservers et ai_servers, ce qui permet d’utiliser des serveurs DNS personnalisés par requête. Il contient également le membre ai_responseflags, qui contient des informations sur l’origine des réponses DNS.
Si l’indicateur AI_RETURN_RESPONSE_FLAGS est présent dans le membre ai_flags, le paramètre GetAddrInfoExppResult retourne une liste de structures ADDRINFOEX6, où le membre ai_responseflags contiendra des informations sur l’origine des résultats DNS.
Si les membres ai_numservers et ai_servers pointent vers un tableau d’objets ADDRINFO_DNS_SERVER valides, la requête DNS ajoute ces serveurs comme secours aux serveurs DNS configurés par le système. Si l’option AI_EXCLUSIVE_CUSTOM_SERVERS est présente dans le membre ai_flags, la requête DNS utilise exclusivement les serveurs personnalisés.
Exemples
Consultez un exemple de code dans la rubrique de structure ADDRINFOEX4.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Build 22000 |
serveur minimum pris en charge | Windows Build 22000 |
d’en-tête | ws2def.h |