Fonction GetIfTable2Ex
La fonction GetIfTable2Ex récupère la table d’interface MIB-II, en fonction d’un niveau d’informations d’interface à récupérer.
Syntaxe
NETIOAPI_API GetIfTable2Ex(
_In_ MIB_IF_TABLE_LEVEL Level,
_Out_ PMIB_IF_TABLE2 *Table
);
Paramètres
Niveau [in]
Niveau d’informations d’interface à récupérer. Ce paramètre peut être l’une des valeurs de l’énumération MIB_IF_TABLE_LEVEL .Table [out]
Pointeur vers une mémoire tampon qui reçoit la table des interfaces dans une structure MIB_IF_TABLE2 .
Valeur retournée
GetIfTable2Ex retourne STATUS_SUCCESS si la fonction réussit.
Si la fonction échoue, GetIfTable2Ex 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 une valeur non valide a été transmise dans le paramètre Level . |
STATUS_NOT_ENOUGH_MEMORY | Des ressources de mémoire insuffisantes sont disponibles pour terminer l’opération. |
Autres | Utilisez la fonction FormatMessage pour obtenir la chaîne de message pour l’erreur retournée. |
Notes
La fonction GetIfTable2Ex énumère les interfaces logiques et physiques sur un ordinateur local et retourne ces informations dans une structure MIB_IF_TABLE2 .
Votre pilote peut utiliser une fonction similaire, GetIfTable2, pour récupérer des interfaces, mais GetIfTable2 ne permet pas à votre pilote despecifier le niveau d’interfaces à retourner. Un appel à 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 .
GetIfTable2Ex retourne des interfaces dans une structure MIB_IF_TABLE2 dans la mémoire tampon vers laquelle pointe 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. GetIfTable2 alloue mmory 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, votre pilote doit libérer 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 de MIB_IF_TABLE2 pointée par le paramètre Table pour l’interface sont retournés. Par exemple, une interface réseau carte (NIC) a 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 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 (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 (MediaConnectStateConnected) est retourné.
Notez que la structure de MIB_IF_TABLE2 renvoyée vers laquelle pointe 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.
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 |