GetIpInterfaceEntry, fonction
La fonction GetIpInterfaceEntry récupère les informations IP pour l’interface spécifiée sur un ordinateur local.
Syntaxe
NETIOAPI_API GetIpInterfaceEntry(
_Inout_ PMIB_IPINTERFACE_ROW Row
);
Paramètres
- Ligne [in, out]
Pointeur vers une structure de MIB_IPINTERFACE_ROW qui, en cas de retour réussi, reçoit des informations pour une interface sur l’ordinateur local. Lors de l’entrée, votre pilote doit définir le membre InterfaceLuid ou le membre InterfaceIndex du MIB_IPINTERFACE_ROW sur l’interface pour laquelle récupérer des informations.
Valeur retournée
GetIpInterfaceEntry retourne STATUS_SUCCESS si la fonction réussit.
Si la fonction échoue, GetIpInterfaceEntry 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 un pointeur NULL est transmis dans le paramètre Row , si le membre Family de la structure MIB_IPINTERFACE_ROW vers laquelle pointe le paramètre Row n’a pas été spécifié comme AF_INET ou AF_INET6, ou si les membres InterfaceLuid et InterfaceIndex 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 le membre InterfaceLuid ou InterfaceIndex de la structure MIB_IPINTERFACE_ROW vers laquelle pointe le paramètre Row . |
Autres | Utilisez la fonction FormatMessage pour obtenir la chaîne de message pour l’erreur retournée. |
Notes
Lors de l’entrée, votre pilote doit initialiser les membres suivants de la structure MIB_IPINTERFACE_ROW vers laquelle pointe le paramètre Row .
Famille
Définissez sur AF_INET ou AF_INET6.InterfaceLuid ou InterfaceIndex
Ces membres 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. 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.
Lors de la sortie, GetIpInterfaceEntry remplit les membres restants de la structure MIB_IPINTERFACE_ROW vers laquelle pointe le paramètre Row .
Votre pilote doit utiliser la fonction InitializeIpInterfaceEntry pour initialiser les champs d’une entrée de structure MIB_IPINTERFACE_ROW avec les 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 .
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 typique 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 d’hôte faible, où le service d’accès à distance (RAS) empêche cet accès simultané en augmentant la métrique d’itinéraire 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 perturbe la connectivité 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 d’itinéraire à l’aide de la fonction GetBestRoute2 , la recherche d’itinéraire est limitée à l’interface de l’adresse IP source. La modification de la métrique d’itinéraire par RAS n’a aucun effet, car la liste des itinéraires potentiels n’a même pas l’itinéraire pour l’interface VPN, ce qui permet le trafic vers Internet. Votre pilote peut utiliser le membre DisableDefaultRoutes du MIB_IPINTERFACE_ROW pour désactiver l’utilisation de la route 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 SetIpInterfaceEntry pour définir le membre DisableDefaultRoutes sur TRUE lorsque cela est nécessaire. Un client VPN peut interroger l’état actuel du membre DisableDefaultRoutes en appelant la fonction GetIpInterfaceEntry .
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 |