CreateIpForwardEntry2, fonction
La fonction CreateIpForwardEntry2 crée une entrée de route IP sur un ordinateur local.
Syntaxe
NETIOAPI_API CreateIpForwardEntry2(
_In_ const MIB_IPFORWARD_ROW2 *Row
);
Paramètres
- Ligne [in]
Pointeur vers une entrée de structure MIB_IPFORWARD_ROW2 pour une entrée de route IP.
Valeur retournée
CreateIpForwardEntry2 retourne STATUS_SUCCESS si la fonction réussit.
Si la fonction échoue, CreateIpForwardEntry2 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’une des situations suivantes se produit :
Cette erreur est retournée si un pointeur NULL est transmis dans le paramètre Row , si le membre DestinationPrefix de la structure MIB_IPFORWARD_ROW2 pointée par le paramètre Row n’a pas été spécifié, si le membre NextHop de la structure MIB_IPFORWARD_ROW2 n’a pas été spécifié, ou si les membres InterfaceLuid et InterfaceIndex de la structure MIB_IPFORWARD_ROW2 n’ont pas été spécifiés. Cette erreur est également retournée si le membre PreferredLifetime spécifié dans la structure MIB_IPFORWARD_ROW2 est supérieur au membre ValidLifetime , ou si la valeur SitePrefixLength dans la structure MIB_IPFORWARD_ROW2 est supérieure à la longueur de préfixe spécifiée dans le membre DestinationPrefix . |
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 l’interface spécifiée ne prend pas en charge les itinéraires. Cette erreur est retournée si aucune pile IPv4 ne se trouve sur l’ordinateur local et si AF_INET a été spécifié dans la famille d’adresses dans le membre DestinationPrefix de la structure MIB_IPFORWARD_ROW2 vers laquelle pointe le paramètre Row , ou si aucune pile IPv6 ne se trouve sur l’ordinateur local et AF_INET6 a été spécifié pour la famille d’adresses dans le membre DestinationPrefix . |
ERROR_OBJECT_ALREADY_EXISTS | L'objet existe déjà. Cette erreur est retournée si le membre DestinationPrefix de la structure MIB_IPFORWARD_ROW2 vers laquelle pointe le paramètre Row est un doublon d’une entrée de route IP existante sur l’interface spécifiée par le membre InterfaceLuid ou InterfaceIndex de la structure MIB_IPFORWARD_ROW2. |
Autres | Utilisez la fonction FormatMessage pour obtenir la chaîne de message de l’erreur retournée. |
Notes
La fonction CreateIpForwardEntry2 permet d’ajouter une nouvelle entrée d’adresse IP voisine sur un ordinateur local. Utilisez la fonction InitializeIpForwardEntry pour initialiser les membres d’une entrée de structure MIB_IPFORWARD_ROW2 avec les valeurs par défaut. Un pilote peut ensuite modifier les membres de l’entrée MIB_IPFORWARD_ROW2 qu’il souhaite modifier, puis appeler CreateIpForwardEntry2.
Votre pilote doit initialiser les membres suivants de la structure MIB_IPFORWARD_ROW2 vers laquelle pointe le paramètre Row :
Définissez DestinationPrefix sur un préfixe d’adresse IPv4 ou IPv6 valide.
Définissez NextHop sur une adresse et une famille IPv4 ou IPv6 valides.
Définissez InterfaceLuid ou InterfaceIndex sur la valeur LUID ou index de l’interface.
Les membres InterfaceLuid et InterfaceIndex 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 sur laquelle ajouter l’entrée de route IP. 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.
Le décalage de la métrique d’itinéraire spécifié dans le membre Métrique de la structure MIB_IPFORWARD_ROW2 sur laquelle pointe le paramètre Row ne représente qu’une partie de la métrique d’itinéraire complète. La métrique complète est une combinaison de ce décalage de métrique d’itinéraire ajouté à la métrique d’interface spécifiée dans le membre Métrique de la structure MIB_IPINTERFACE_ROW de l’interface associée. Un pilote peut récupérer la métrique d’interface en appelant la fonction GetIpInterfaceEntry .
Les membres Age et Origin de la structure MIB_IPFORWARD_ROW2 vers laquelle pointe le paramètre Row sont ignorés lorsque la fonction CreateIpForwardEntry2 est appelée. Ces membres sont définis par la pile réseau et ne peuvent pas être définis à l’aide de la fonction CreateIpForwardEntry2 .
La fonction CreateIpForwardEntry2 échoue si les membres DestinationPrefix et NextHop de la structure MIB_IPFORWARD_ROW2 vers laquelle pointe le paramètre Row sont un doublon d’une entrée de route IP existante sur l’interface spécifiée dans les membres InterfaceLuid ou InterfaceIndex .
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 |