Partager via


ResolveIpNetEntry2, fonction

La fonction ResolveIpNetEntry2 résout l’adresse physique d’une entrée d’adresse IP voisine sur un ordinateur local.

Syntaxe

NETIOAPI_API ResolveIpNetEntry2(
  _Inout_        PMIB_IPNET_ROW2 Row,
  _In_opt_ const SOCKADDR_INET   *SourceAddress
);

Paramètres

  • ligne [in, out]
    Pointeur vers une entrée de structure MIB_IPNET_ROW2 pour une entrée d’adresse IP voisine. Lors du retour réussi, cette structure est mise à jour avec les propriétés de l’adresse IP voisine.

  • SourceAddress [in, facultatif]
    Pointeur vers une adresse IP source facultative utilisée pour sélectionner l’interface pour envoyer les demandes pour l’entrée d’adresse IP voisine.

Valeur de retour

ResolveIpNetEntry2 retourne STATUS_SUCCESS si la fonction réussit.

Si la fonction échoue, ResolveIpNetEntry2 retourne l’un des codes d’erreur suivants :

Retourner le code Description
STATUS_BAD_NETWORK_NAME

Le nom du réseau est introuvable. Cette erreur est retournée si le réseau avec l’adresse IP voisine est inaccessible.

STATUS_INVALID_PARAMETER

Un paramètre non valide a été passé à la fonction. Cette erreur est retournée si un pointeur NULL est transmis dans le paramètre Ligne, le membre Address de la structure MIB_IPNET_ROW2 que les points de paramètre Ligne n’ont pas été définis sur une adresse IPv4 ou IPv6 valide, ou les deux InterfaceLuid et InterfaceIndex membres de la structure MIB_IPNET_ROW2 n’ont pas été spécifiés. Cette erreur est également retournée si une adresse de bouclage a été transmise dans le membre Adresse.

STATUS_NOT_FOUND

L’interface spécifiée est introuvable. Cette erreur est retournée si la fonction ne trouve pas l’interface réseau spécifiée par l'InterfaceLuid ou membre InterfaceIndex de la structure MIB_IPNET_ROW2 vers laquelle pointe le paramètre Ligne.

STATUS_NOT_SUPPORTED

La demande n’est pas prise en charge. Cette erreur est retournée si aucune pile IPv4 n’est située sur l’ordinateur local et qu’une adresse IPv4 a été spécifiée dans le membre Address de la structure MIB_IPNET_ROW2 vers laquelle le paramètre Ligne pointe, ou si aucune pile IPv6 n’est située sur l’ordinateur local et qu’une adresse IPv6 a été spécifiée dans le membre Address.

autres

Utilisez la fonction FormatMessage pour obtenir la chaîne de message pour l’erreur retournée.

Remarques

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 sur l’interface, puis résout l’adresse d’adresse physique (MAC) en envoyant des demandes ARP pour une adresse IPv4 ou une demande de sollicitation de voisin (NS) pour une adresse IPv6. Si le paramètre SourceAddress est spécifié, ResolveIpNetEntry2 sélectionne l’interface avec cette adresse IP source pour envoyer les demandes. Si le paramètre SourceAddress n’est pas spécifié ( NULL a été transmis dans ce paramètre), ResolveIpNetEntry2 sélectionne automatiquement la meilleure interface pour envoyer les requêtes.

Votre pilote doit initialiser les membres suivants de la structure MIB_IPNET_ROW2 vers laquelle pointe le paramètre Ligne.

  • d’adresse
    Définissez sur une adresse et une famille IPv4 ou IPv6 valides.

  • InterfaceLuid ou InterfaceIndex
    Ces membres sont utilisés dans l’ordre répertorié précédemment. Par conséquent, si InterfaceLuid est spécifié, ce membre est utilisé pour déterminer l’interface. Si aucune valeur n’a été définie pour le membre InterfaceLuid (la valeur de ce membre a été définie sur zéro), le membre InterfaceIndex est ensuite utilisé pour déterminer l’interface.

Si l’adresse IP transmise dans le membre adresse de la structure MIB_IPNET_ROW2 que le paramètre Ligne pointe 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 vers laquelle pointe le paramètre Ligne. Les membres PhysicalAddress et PhysicalAddressLength dans la structure MIB_IPNET_ROW2 sont initialisés à une adresse physique valide.

Exigences

Plateforme cible

universel

Version

Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.

En-tête

Netioapi.h (include Netioapi.h)

Bibliothèque

Netio.lib

IRQL

< DISPATCH_LEVEL

Voir aussi

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SetIpNetEntry2