SetIpNetEntry2, fonction (netioapi.h)
La fonction SetIpNetEntry2 définit l’adresse physique d’une entrée d’adresse IP voisine existante sur l’ordinateur local.
Syntaxe
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API SetIpNetEntry2(
[in, out] PMIB_IPNET_ROW2 Row
);
Paramètres
[in, out] Row
Pointeur vers une entrée de structure MIB_IPNET_ROW2 pour une 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 |
---|---|
|
L’accès est refusé. Cette erreur est retournée dans plusieurs conditions, notamment : l’utilisateur n’a pas les privilèges d’administration requis sur l’ordinateur local ou l’application ne s’exécute pas dans un interpréteur de commandes amélioré en tant qu’administrateur intégré (administrateur RunAs). |
|
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 , que 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 de monodiffusion, anycast ou multidiffusion valide. Les membres PhysicalAddress et PhysicalAddressLength du MIB_IPNET_ROW2 pointés par le paramètre Row n’ont pas été définis sur une adresse physique valide, ou les deux membres InterfaceLuid ou InterfaceIndex du MIB_IPNET_ROW2 pointés par le paramètre Row n’étaient pas 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 SetIpNetEntry2 est définie sur Windows Vista et versions ultérieures.
La fonction SetIpNetEntry2 permet de définir l’adresse physique d’une entrée d’adresse IP voisine existante sur un ordinateur local.
Le membre Address dans la structure MIB_IPNET_ROW2 pointée vers le paramètre Row doit être initialisé vers une adresse et une famille IPv4 ou IPv6 valides en monodiffusion, anycast ou multidiffusion. Les membres PhysicalAddress et PhysicalAddressLength de la structure MIB_IPNET_ROW2 pointées par le paramètre Row doivent être initialisés sur une adresse physique valide. 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.
La fonction SetIpNetEntry2 échoue si l’adresse IP passée dans le membre Address du MIB_IPNET_ROW2 pointé par le paramètre Row n’est pas une adresse IP voisine existante sur l’interface spécifiée.
La fonction SetIpNetEntry2 ne peut être appelée que par un utilisateur connecté en tant que membre du groupe Administrateurs. Si SetIpNetEntry2 est appelé par un utilisateur qui n’est pas membre du groupe Administrateurs, l’appel de fonction échoue et ERROR_ACCESS_DENIED est retourné.
La fonction SetIpNetEntry2 peut également échouer en raison du contrôle de compte d’utilisateur (UAC) sur Windows Vista et versions ultérieures. Si une application qui contient cette fonction est exécutée par un utilisateur connecté en tant que membre du groupe Administrateurs autre que l’administrateur intégré, cet appel échoue, sauf si l’application a été marquée dans le fichier manifeste avec un requestedExecutionLevel défini sur requireAdministrator. Si l’application ne dispose pas de ce fichier manifeste, un utilisateur connecté en tant que membre du groupe Administrateurs autre que l’administrateur intégré doit ensuite exécuter l’application dans un interpréteur de commandes amélioré en tant qu’administrateur intégré (administrateur d’exécution) pour que cette fonction réussisse.
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 |