Fonction ResolveIpNetEntry2
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. En cas de retour réussi, cette structure est mise à jour avec les propriétés de l’adresse IP du voisin.SourceAddress [in, facultatif]
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
ResolveIpNetEntry2 retourne STATUS_SUCCESS si la fonction réussit.
Si la fonction échoue, ResolveIpNetEntry2 retourne l’un des codes d’erreur suivants :
Code de retour | 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é transmis à la fonction. Cette erreur est retournée si un pointeur NULL est passé dans le paramètre Row , si le membre Address de la structure MIB_IPNET_ROW2 vers laquelle pointe le paramètre Row n’a pas été défini sur une adresse IPv4 ou IPv6 valide, ou si les membres InterfaceLuid et InterfaceIndex 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é passée dans le membre Address . |
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 le membre InterfaceLuid ou InterfaceIndex de la structure MIB_IPNET_ROW2 vers laquelle pointe le paramètre Row . |
STATUS_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 de la structure MIB_IPNET_ROW2 vers laquelle pointe 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 la fonction FormatMessage pour obtenir la chaîne de message de l’erreur retournée. |
Notes
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 des demandes 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 sur laquelle 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 sur laquelle envoyer les requêtes.
Votre pilote doit initialiser les membres suivants de la structure MIB_IPNET_ROW2 vers laquelle pointe le paramètre Row .
Adresse
Définissez sur une adresse et une famille IPv4 ou IPv6 valides.InterfaceLuid ou InterfaceIndex
Ces membres sont utilisés dans l’ordre indiqué 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 passée dans le membre Address de la structure MIB_IPNET_ROW2 vers laquelle pointe 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 vers laquelle pointe le paramètre Row . Les membres PhysicalAddress et PhysicalAddressLength de la structure MIB_IPNET_ROW2 sont initialisés à une adresse physique valide.
Spécifications
Plateforme cible |
Universal |
Version |
Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows. |
En-tête |
Netioapi.h (inclure Netioapi.h) |
Bibliothèque |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |