ResolveIpNetEntry2, fonction (netioapi.h)
La fonction ResolveIpNetEntry2 résout l’adresse physique d’une entrée d’adresse IP voisine sur l’ordinateur local.
Syntaxe
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API ResolveIpNetEntry2(
[in, out] PMIB_IPNET_ROW2 Row,
[in, optional] const SOCKADDR_INET *SourceAddress
);
Paramètres
[in, out] Row
Pointeur vers une entrée de structure MIB_IPNET_ROW2 pour une entrée d’adresse IP voisine. En cas de retour réussi, cette structure est mise à jour avec les propriétés de l’adresse IP du voisin.
[in, optional] SourceAddress
Pointeur vers une adresse IP source facultative utilisée pour sélectionner l’interface sur laquelle envoyer les demandes pour l’entrée d’adresse IP voisine.
Valeur retournée
Si la fonction réussit, la valeur de retour est NO_ERROR.
Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.
Code de retour | Description |
---|---|
|
Le nom du réseau est introuvable. Cette erreur est retournée si le réseau avec l’adresse IP voisine est inaccessible. |
|
Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si un pointeur NULL est passé dans le paramètre Row , si le membre Address du MIB_IPNET_ROW2 pointé par le paramètre Row n’a pas été défini sur une adresse IPv4 ou IPv6 valide, ou si les membres InterfaceLuid ou InterfaceIndex du MIB_IPNET_ROW2 pointés par le paramètre Row n’ont pas été spécifiés. Cette erreur est également retournée si une adresse de bouclage a été passée dans le membre Address . |
|
L’interface spécifiée est introuvable. Cette erreur est retournée si l’interface réseau spécifiée par le membre InterfaceLuid ou InterfaceIndex du MIB_IPNET_ROW2 pointé par le paramètre Row est introuvable. |
|
La demande n'est pas prise en charge. Cette erreur est retournée si aucune pile IPv4 ne se trouve sur l’ordinateur local et qu’une adresse IPv4 a été spécifiée dans le membre Address du MIB_IPNET_ROW2 pointé par le paramètre Row ou si aucune pile IPv6 ne se trouve sur l’ordinateur local et qu’une adresse IPv6 a été spécifiée dans le membre Address . |
|
Utilisez FormatMessage pour obtenir la chaîne de message de l’erreur retournée. |
Remarques
La fonction ResolveIpNetEntry2 est définie sur Windows Vista et versions ultérieures.
La fonction ResolveIpNetEntry2 est utilisée pour résoudre l’adresse physique d’une entrée d’adresse IP voisine sur un ordinateur local. Cette fonction vide toute entrée de voisin existante qui correspond à l’adresse IP de l’interface, puis résout l’adresse d’adresse physique (MAC) en envoyant des demandes ARP pour une adresse IPv4 ou des demandes de sollicitation de voisins pour une adresse IPv6. Si le paramètre SourceAddress est spécifié, la fonction ResolveIpNetEntry2 sélectionne l’interface avec cette adresse IP source sur laquelle envoyer les requêtes. Si le paramètre SourceAddress n’est pas spécifié (NULL a été transmis dans ce paramètre), la fonction ResolveIpNetEntry2 sélectionne automatiquement l’interface sur laquelle envoyer les requêtes.
Le membre Address dans la structure MIB_IPNET_ROW2 pointée par le paramètre Row doit être initialisé vers une adresse IPv4 ou IPv6 et une famille valides. En outre, au moins un des membres suivants dans la structure MIB_IPNET_ROW2 pointant vers le paramètre Row doit être initialisé vers l’interface : InterfaceLuid ou InterfaceIndex.
Les champs sont utilisés dans l’ordre indiqué ci-dessus. Ainsi, si InterfaceLuid est spécifié, ce membre est utilisé pour déterminer l’interface sur laquelle ajouter l’adresse IP de monodiffusion. Si aucune valeur n’a été définie pour le membre InterfaceLuid (les valeurs de ce membre ont été définies sur zéro), le membre InterfaceIndex est ensuite utilisé pour déterminer l’interface.
Si l’adresse IP passée dans le membre Address du MIB_IPNET_ROW2 pointé par le paramètre Row est un doublon d’une adresse IP voisine existante sur l’interface, la fonction ResolveIpNetEntry2 vide l’entrée existante avant de résoudre l’adresse IP.
Lors de la sortie lorsque l’appel réussit, ResolveIpNetEntry2 récupère les autres propriétés de l’adresse IP voisine et remplit la structure MIB_IPNET_ROW2 pointée par le paramètre Row . Les membres PhysicalAddress et PhysicalAddressLength dans la structure MIB_IPNET_ROW2 pointées par le paramètre Row sont initialisés à une adresse physique valide.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | netioapi.h (include Iphlpapi.h) |
Bibliothèque | Iphlpapi.lib |
DLL | Iphlpapi.dll |