Partager via


GetIfTable2Ex, fonction (netioapi.h)

La fonction GetIfTable2Ex récupère la table d’interface MIB-II.

Syntaxe

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIfTable2Ex(
  [in]  MIB_IF_TABLE_LEVEL Level,
  [out] PMIB_IF_TABLE2     *Table
);

Paramètres

[in] Level

Niveau d’informations d’interface à récupérer. Ce paramètre peut être l’une des valeurs du type d’énumération MIB_IF_TABLE_LEVEL défini dans le fichier d’en-tête Netioapi.h .

Valeur Signification
MibIfTableNormal
Les valeurs de statistiques et d’état retournées dans les membres de la structure MIB_IF_ROW2 dans la structure MIB_IF_TABLE2 pointée par le paramètre Table sont retournées par le haut de la pile de filtres lorsque ce paramètre est spécifié.
MibIfTableRaw
Les valeurs de statistiques et d’état retournées dans les membres de la structure MIB_IF_ROW2 dans la structure MIB_IF_TABLE2 pointée par le paramètre Table sont retournées directement pour l’interface interrogée.

[out] Table

Pointeur vers une mémoire tampon qui reçoit la table des interfaces dans une structure MIB_IF_TABLE2 .

Valeur retournée

Si la fonction réussit, la valeur de retour est NO_ERROR.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.

Code de retour Description
ERROR_INVALID_PARAMETER
Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si une valeur non valide a été transmise dans le paramètre Level .
ERROR_NOT_ENOUGH_MEMORY
Des ressources de mémoire insuffisantes sont disponibles pour terminer l’opération.
Autres
Utilisez FormatMessage pour obtenir la chaîne de message pour l’erreur retournée.

Remarques

The
La fonction GetIfTable2Ex énumère les interfaces logiques et physiques d’un système local et retourne ces informations dans une structure MIB_IF_TABLE2 . GetIfTable2Ex est une version améliorée de la fonction GetIfTable qui permet de sélectionner le niveau d’informations d’interface à récupérer.

Une fonction GetIfTable2 similaire peut également être utilisée pour récupérer des interfaces. mais n’autorise pas la spécification du niveau d’interfaces à retourner. L’appel de la fonction GetIfTable2Ex avec le paramètre Level défini sur MibIfTableNormal récupère les mêmes résultats que l’appel de la fonction GetIfTable2 .

Les interfaces sont retournées dans une structure MIB_IF_TABLE2 dans la mémoire tampon pointée par le paramètre Table . La structure MIB_IF_TABLE2 contient un nombre d’interfaces et un tableau de structures MIB_IF_ROW2 pour chaque interface. La mémoire est allouée par la fonction GetIfTable2 pour la structure MIB_IF_TABLE2 et les entrées MIB_IF_ROW2 dans cette structure. Lorsque ces structures retournées ne sont plus nécessaires, libérez la mémoire en appelant FreeMibTable.

Toutes les interfaces, y compris les interfaces de pilote intermédiaire NDIS et les interfaces de pilote de filtre NDIS, sont retournées pour l’une des valeurs possibles pour le paramètre Level . Le paramètre du paramètre Level affecte la façon dont les statistiques et les membres d’état de la structure MIB_IF_ROW2 dans la structure MIB_IF_TABLE2 pointée par le paramètre Table pour l’interface sont retournés. Par exemple, une interface réseau carte (NIC) aura un pilote miniport NDIS. Un pilote intermédiaire NDIS peut être installé pour interfacer entre les pilotes de protocole de niveau supérieur et les pilotes miniportS NDIS. Un pilote de filtre NDIS (LWF) peut être attaché au-dessus du pilote intermédiaire NDIS. Supposons que la carte réseau signale le membre MediaConnectState de la structure MIB_IF_ROW2 comme MediaConnectStateConnected , mais que le pilote de filtre NDIS modifie l’état et signale l’état en tant que MediaConnectStateDisconnected. Lorsque les informations d’interface sont interrogées avec le paramètre Level défini sur MibIfTableNormal, l’état en haut de la pile de filtres, à savoir MediaConnectStateDisconnected , est signalé. Lorsque l’interface est interrogée avec le paramètre Level défini sur MibIfTableRaw, l’état au niveau de l’interface directement, c’est-à-dire MediaConnectStateConnected , est retourné.

Notez que la structure de MIB_IF_TABLE2 renvoyée pointée vers le paramètre Table peut contenir un remplissage pour l’alignement entre le membre NumEntries et la première entrée de tableau MIB_IF_ROW2 dans le membre Table de la structure MIB_IF_TABLE2 . Le remplissage pour l’alignement peut également être présent entre les entrées de tableau MIB_IF_ROW2 . Tout accès à une entrée de tableau MIB_IF_ROW2 doit supposer que le remplissage peut exister.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête netioapi.h (inclure Iphlpapi.h)
Bibliothèque Iphlpapi.lib
DLL Iphlpapi.dll

Voir aussi

FreeMibTable

GetIfTable

GetIfTable2

Informations de référence sur la fonction d’assistance IP

MIB_IF_ROW2

MIB_IF_TABLE2