Partager via


CreateIpNetEntry2, fonction

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

Syntaxe

NETIOAPI_API CreateIpNetEntry2(
  _In_ const MIB_IPNET_ROW2 *Row
);

Paramètres

Valeur retournée

CreateIpNetEntry2 retourne STATUS_SUCCESS si la fonction réussit.

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

Code de retour Description
STATUS_INVALID_PARAMETER

Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si l’un des éléments suivants se produit :

  • Un pointeur NULL est passé dans le paramètre Row .

  • Le membre Address du MIB_IPNET_ROW2 structure vers laquelle pointe le paramètre Row n’a pas été défini sur une adresse IPv4 ou IPv6 valide en unidiffusion, anycast ou multidiffusion.

  • Les membres PhysicalAddress et PhysicalAddressLength de la structure MIB_IPNET_ROW2 n’ont pas été définis sur une adresse physique valide.

  • Les membres InterfaceLuid et InterfaceIndex de la structure MIB_IPNET_ROW2 n’étaient pas spécifiés.

  • 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 que 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 .

ERROR_OBJECT_ALREADY_EXISTS

L'objet existe déjà. Cette erreur est retournée si 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 spécifiée par le membre InterfaceLuid ou InterfaceIndex de la structure MIB_IPNET_ROW2.

Autres

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

Notes

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

  • Définissez le membre Address sur une adresse et une famille IPv4 ou IPv6 valides, anycast ou multidiffusion.

  • Définissez les membres PhysicalAddress et PhysicalAddressLength de la structure MIB_IPNET_ROW2 sur une adresse physique valide.

  • Définissez InterfaceLuid ou InterfaceIndex sur la valeur LUID ou d’index de l’interface.

Les membres InterfaceLuid et InterfaceIndex sont utilisés dans l’ordre répertorié précédemment. Par conséquent, si l’interfaceLuid est spécifiée, ce membre est utilisé pour déterminer l’interface sur laquelle ajouter l’adresse IP de unidiffusion. 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.

La fonction CreateIpNetEntry2 échoue 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.

Spécifications

Plateforme cible

Universal

Version

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

En-tête

Netioapi.h (inclure Netioapi.h)

Bibliothèque

Netio.lib

IRQL

< DISPATCH_LEVEL

Voir aussi

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

ResolveIpNetEntry2

SetIpNetEntry2