Partager via


CreateIpNetEntry2, fonction (netioapi.h)

La fonction CreateIpNetEntry2 crée une entrée d’adresse IP voisine sur l’ordinateur local.

Syntaxe

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API CreateIpNetEntry2(
  [in] const MIB_IPNET_ROW2 *Row
);

Paramètres

[in] 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
ERROR_ACCESS_DENIED
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).
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 , 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 .
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 . Cette erreur est également retournée 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 .
ERROR_OBJECT_ALREADY_EXISTS
L'objet existe déjà. Cette erreur est retournée si 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 spécifiée par le membre InterfaceLuid ou InterfaceIndex du MIB_IPNET_ROW2.
Autres
Utilisez FormatMessage pour obtenir la chaîne de message de l’erreur retournée.

Remarques

La fonction CreateIpNetEntry2 est définie sur Windows Vista et versions ultérieures.

La fonction CreateIpNetEntry2 permet d’ajouter une nouvelle entrée d’adresse IP voisine 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 CreateIpNetEntry2 échoue 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 CreateIpNetEntry2 ne peut être appelée que par un utilisateur connecté en tant que membre du groupe Administrateurs. Si CreateIpNetEntry2 est appelé par un utilisateur qui n’est pas membre du groupe Administrateurs, l’appel de fonction échoue et ERROR_ACCESS_DENIED est retourné. Cette fonction 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

Voir aussi

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

ResolveIpNetEntry2

SetIpNetEntry2