Partager via


SetIpInterfaceEntry, fonction

La fonction SetIpInterfaceEntry définit les propriétés d’une interface IP sur un ordinateur local.

Syntaxe

NETIOAPI_API SetIpInterfaceEntry(
  _Inout_ PMIB_IPINTERFACE_ROW Row
);

Paramètres

  • ligne [in, out]
    Pointeur vers une entrée de structure MIB_IPINTERFACE_ROW pour une interface. Lors de l’entrée, votre pilote doit définir le membre famille du MIB_IPINTERFACE_ROW sur AF_INET6 ou AF_INET, et votre pilote doit spécifier le membre InterfaceLuid ou le membre InterfaceIndex de MIB_IPINTERFACE_ROW. Lors d’un retour réussi, le membre InterfaceLuid de l’MIB_IPINTERFACE_ROW est renseigné si le membre InterfaceIndex de l’entrée MIB_IPINTERFACE_ROW a été spécifié.

Valeur de retour

SetIpInterfaceEntry retourne STATUS_SUCCESS si la fonction réussit.

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

Retourner le code Description
STATUS_INVALID_PARAMETER

Un paramètre non valide a été passé à la fonction. Cette erreur est retournée si un pointeur NULL est transmis dans le paramètre ligne, le membre famille de la structure MIB_IPINTERFACE_ROW que le paramètre Row à n’a pas été spécifié comme AF_INET ou AF_INET6, ou les deux interfaceLuid et InterfaceIndex membres de la structure MIB_IPINTERFACE_ROW n’ont pas été spécifiés.

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 l'InterfaceLuid ou le membre InterfaceIndex de la structure MIB_IPINTERFACE_ROW vers laquelle pointe le paramètre Ligne.

autres

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

Remarques

Votre pilote doit utiliser la fonction InitializeIpInterfaceEntry pour initialiser les champs d’une entrée de structure MIB_IPINTERFACE_ROW avec des valeurs par défaut. Un pilote peut ensuite modifier les champs de l’entrée MIB_IPINTERFACE_ROW qu’il souhaite modifier, puis appeler la fonction SetIpInterfaceEntry.

Lors de l’entrée, votre pilote doit initialiser les membres suivants de la structure MIB_IPINTERFACE_ROW vers laquelle pointe le paramètre Ligne.

  • famille
    Défini sur AF_INET ou AF_INET6.

  • InterfaceLuid ou InterfaceIndex
    Ces membres sont utilisés dans l’ordre répertorié 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.

En sortie, le membre InterfaceLuid de la structure MIB_IPINTERFACE_ROW à laquelle le paramètre Ligne pointe est renseigné si le InterfaceIndex a été spécifié.

SetIpInterfaceEntry ignore les MaxReassemblySize, MinRouterAdvertisementInterval, MaxRouterAdvertisementInterval, Connected, SupportsWakeUpPatterns, SupportsNeighborDiscovery, SupportsRouterDiscovery, ReachableTime, TransmitOffloadet membres de la structure ReceiveOffload de la structure MIB_IPINTERFACE_ROW vers laquelle pointe le paramètre Ligne. Ces membres sont définis par la pile réseau et ne peuvent pas être modifiés à l’aide de la fonction SetIpInterfaceEntry.

L’accès simultané non privilégié à plusieurs réseaux de différentes exigences de sécurité crée un trou de sécurité et permet à un pilote non privilégié de relayer accidentellement des données entre les deux réseaux. Un exemple classique est l’accès simultané à un réseau privé virtuel (VPN) et à Internet. Les systèmes d’exploitation Windows Server 2003 et Windows XP utilisent un modèle hôte faible, où le service d’accès à distance (RAS) empêche un tel accès simultané en augmentant la métrique de routage de tous les itinéraires par défaut sur d’autres interfaces. Par conséquent, tout le trafic est acheminé via l’interface VPN, ce qui interrompt d’autres connectivités réseau.

Sur Windows Vista et les versions ultérieures des systèmes d’exploitation Windows, par défaut, un modèle hôte fort est utilisé. Si une adresse IP source est spécifiée dans la recherche de routage à l’aide de la fonction GetBestRoute2, la recherche de routage est limitée à l’interface de l’adresse IP source. La modification de la métrique de routage par RAS n’a aucun effet, car la liste des itinéraires potentiels n’a même pas l’itinéraire de l’interface VPN, ce qui permet le trafic vers Internet. Votre pilote peut utiliser le DisableDefaultRoutes membre de la structure MIB_IPINTERFACE_ROW pour désactiver l’utilisation de l’itinéraire par défaut sur une interface. Les clients VPN peuvent utiliser ce membre comme mesure de sécurité pour restreindre le tunneling fractionné lorsque le tunneling fractionné n’est pas requis par le client VPN. Un client VPN peut appeler la fonction de SetIpInterfaceEntry pour définir le membre DisableDefaultRoutes TRUE lorsqu’il est nécessaire. Un client VPN peut interroger l’état actuel du membre DisableDefaultRoutes en appelant la fonction GetIpInterfaceEntry.

Exigences

Plateforme cible

universel

Version

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

En-tête

Netioapi.h (include Netioapi.h)

Bibliothèque

Netio.lib

IRQL

< DISPATCH_LEVEL

Voir aussi

GetBestRoute2

GetIfEntry2

GetIfTable2

GetIfTable2Ex

GetIpInterfaceEntry

GetIpInterfaceTable

InitializeIpInterfaceEntry

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

NotifyIpInterfaceChange