Partager via


GetIpInterfaceTable, fonction

La fonction GetIpInterfaceTable récupère les entrées d’interface IP sur un ordinateur local.

Syntaxe

NETIOAPI_API GetIpInterfaceTable(
  _In_  ADDRESS_FAMILY         Family,
  _Out_ PMIB_IPINTERFACE_TABLE *Table
);

Paramètres

  • Famille [in]
    Famille d’adresses des interfaces IP à récupérer.

    Les valeurs possibles pour la famille d’adresses sont répertoriées dans le fichier d’en-tête Winsock2.h. Notez que les valeurs de la famille d’adresses AF_ et des constantes de famille de protocole PF_ sont identiques (par exemple, AF_INET et PF_INET). Vous pouvez donc utiliser l’une ou l’autre constante.

    Sur Windows Vista et les versions ultérieures des systèmes d’exploitation Windows, les valeurs possibles pour le paramètre Family sont définies dans le fichier d’en-tête Ws2def.h. Notez que le fichier d’en-tête Ws2def.h est automatiquement inclus dans Netioapi.h et que vous ne devez jamais utiliser Ws2def.h directement.

    Les valeurs suivantes sont actuellement prises en charge pour la famille d’adresses :

    • AF_INET
      Famille d’adresses IPv4.

    • AF_INET6
      Famille d’adresses IPv6.

    • AF_UNSPEC
      La famille d’adresses n’est pas spécifiée. Lorsque cette valeur est spécifiée, la fonction GetIpInterfaceTable retourne la table d’interface IP qui contient les entrées IPv4 et IPv6.

  • Table [out]
    Pointeur vers une mémoire tampon qui reçoit la table des entrées d’interface IP dans une structure MIB_IPINTERFACE_TABLE .

Valeur retournée

GetIpInterfaceTable retourne STATUS_SUCCESS si la fonction réussit.

Si la fonction échoue, GetIpInterfaceTable 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 passé dans le paramètre Table ou si le paramètre Family n’a pas été spécifié comme AF_INET, AF_INET6 ou AF_UNSPEC.

STATUS_NOT_ENOUGH_MEMORY

Les ressources de mémoire sont insuffisantes pour terminer l’opération.

STATUS_NOT_FOUND

Aucune entrée d’interface IP, comme spécifié dans le paramètre Family , n’a été trouvée.

STATUS_NOT_SUPPORTED

La fonction n’est pas prise en charge. Cette erreur est retournée lorsque le transport IP spécifié dans le paramètre Address n’est pas configuré sur l’ordinateur local. Cette erreur est également retournée sur les versions de Windows où cette fonction n’est pas prise en charge.

Autres

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

Notes

La fonction GetIpInterfaceTable énumère les interfaces IP sur un ordinateur local et retourne ces informations dans une structure MIB_IPINTERFACE_TABLE .

GetIpInterfaceTable retourne des entrées d’interface IP dans une structure MIB_IPINTERFACE_TABLE dans la mémoire tampon vers laquelle pointe le paramètre Table . La structure MIB_IPINTERFACE_TABLE contient un nombre d’entrées d’interface IP et un tableau de structures MIB_IPINTERFACE_ROW pour chaque entrée d’interface IP. Lorsque ces structures retournées ne sont plus nécessaires, votre pilote doit libérer la mémoire en appelant la fonction FreeMibTable .

Votre pilote doit initialiser le paramètre Family pour AF_INET ou AF_INET6.

Notez que la structure de MIB_IPINTERFACE_TABLE retournée vers laquelle le paramètre Table pointe peut contenir un remplissage pour l’alignement entre le membre NumEntries et la première entrée de tableau MIB_IPINTERFACE_ROW dans le membre Table de la structure MIB_IPINTERFACE_TABLE. Un remplissage pour l’alignement peut également être présent entre les entrées de tableau MIB_IPINTERFACE_ROW. Tout accès à une entrée de tableau MIB_IPINTERFACE_ROW doit supposer l’existence d’un remplissage.

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

Voir aussi

FreeMibTable

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

MIB_IPNET_ROW2

MIB_IPNET_TABLE2