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
ERROR_BAD_NET_NAME
Le nom du réseau est introuvable. Cette erreur est retournée si le réseau avec l’adresse IP voisine est inaccessible.
ERROR_INVALID_PARAMETER
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 .
ERROR_NOT_FOUND
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.
ERROR_NOT_SUPPORTED
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 .
Autres
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

Voir aussi

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SOCKADDR_INET

SetIpNetEntry2