GetIfTable2Ex-Funktion
Die GetIfTable2Ex-Funktion ruft die MIB-II-Schnittstellentabelle ab, wenn eine Ebene der abzurufenden Schnittstelleninformationen angegeben ist.
Syntax
NETIOAPI_API GetIfTable2Ex(
_In_ MIB_IF_TABLE_LEVEL Level,
_Out_ PMIB_IF_TABLE2 *Table
);
Parameter
Ebene [in]
Die Ebene der abzurufenden Schnittstelleninformationen. Dieser Parameter kann einer der Werte aus der MIB_IF_TABLE_LEVEL-Enumeration sein.Tabelle [out]
Ein Zeiger auf einen Puffer, der die Schnittstellentabelle in einer MIB_IF_TABLE2-Struktur empfängt.
Rückgabewert
GetIfTable2Ex gibt STATUS_SUCCESS zurück, wenn die Funktion erfolgreich ist.
Wenn die Funktion fehlschlägt, gibt GetIfTable2Ex einen der folgenden Fehlercodes zurück:
Rückgabecode | Beschreibung |
---|---|
STATUS_INVALID_PARAMETER | Es wurde ein ungültiger Parameter an die Funktion übergeben. Dieser Fehler wird zurückgegeben, wenn im Level-Parameter ein unzulässiger Wert übergeben wurde. |
STATUS_NOT_ENOUGH_MEMORY | Es sind unzureichende Arbeitsspeicherressourcen verfügbar, um den Vorgang abzuschließen. |
Andere | Verwenden Sie die FormatMessage-Funktion , um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen. |
Bemerkungen
Die GetIfTable2Ex-Funktion listet die logischen und physischen Schnittstellen auf einem lokalen Computer auf und gibt diese Informationen in einer MIB_IF_TABLE2-Struktur zurück.
Ihr Treiber kann eine ähnliche Funktion( GetIfTable2) zum Abrufen von Schnittstellen verwenden, aber GetIfTable2 ermöglicht es Ihrem Treiber nicht, die zurückzugebende Schnittstellenebene anzugeben. Ein Aufruf der GetIfTable2Ex-Funktion , bei der der Level-Parameter auf MibIfTableNormal festgelegt ist, ruft dieselben Ergebnisse ab wie der Aufruf der GetIfTable2-Funktion .
GetIfTable2Ex gibt Schnittstellen in einer MIB_IF_TABLE2-Struktur im Puffer zurück, auf den der Table-Parameter verweist. Die MIB_IF_TABLE2-Struktur enthält eine Schnittstellenanzahl und ein Array von MIB_IF_ROW2 Strukturen für jede Schnittstelle. GetIfTable2 ordnet mmory für die MIB_IF_TABLE2-Struktur und die MIB_IF_ROW2 Einträge in dieser Struktur zu. Wenn diese zurückgegebenen Strukturen nicht mehr benötigt werden, sollte Ihr Treiber den Arbeitsspeicher durch Aufrufen von FreeMibTable freigeben.
Alle Schnittstellen, einschließlich NDIS-Zwischentreiberschnittstellen und NDIS-Filtertreiberschnittstellen, werden für einen der möglichen Werte für den Level-Parameter zurückgegeben. Die Einstellung für den Level-Parameter wirkt sich darauf aus, wie Statistiken und Zustandsmember der MIB_IF_ROW2-Struktur in der MIB_IF_TABLE2-Struktur zurückgegeben werden, auf die der Table-Parameter für die Schnittstelle verweist. Beispielsweise verfügt eine Netzwerkschnittstelle Karte (NIC) über einen NDIS-Miniporttreiber. Ein NDIS-Zwischentreiber kann installiert werden, um eine Schnittstelle zwischen Protokolltreibern der oberen Ebene und NDIS-Miniporttreibern herzustellen. Ein NDIS-Filtertreiber kann zusätzlich zum NDIS-Zwischentreiber angefügt werden. Angenommen, die Netzwerkkarte meldet das MediaConnectState-Element der MIB_IF_ROW2-Struktur als MediaConnectStateConnected, aber der NDIS-Filtertreiber ändert den Zustand und meldet den Zustand als MediaConnectStateDisconnected. Wenn die Schnittstelleninformationen abgefragt werden, wobei der Level-Parameter auf MibIfTableNormal festgelegt ist, wird der Zustand oben im Filterstapel (MediaConnectStateDisconnected) gemeldet. Wenn die Schnittstelle abgefragt wird, wobei der Level-Parameter auf MibIfTableRaw festgelegt ist, wird der Zustand auf Schnittstellenebene (MediaConnectStateConnected) direkt zurückgegeben.
Beachten Sie, dass die zurückgegebene MIB_IF_TABLE2 Struktur, auf die der Table-Parameter verweist, möglicherweise eine Auffüllung für die Ausrichtung zwischen dem NumEntries-Element und dem ersten MIB_IF_ROW2 Arrayeintrag im Table-Element der MIB_IF_TABLE2-Struktur enthalten kann. Zwischen den MIB_IF_ROW2 Arrayeinträgen kann auch ein Abstand für die Ausrichtung vorhanden sein. Bei jedem Zugriff auf einen MIB_IF_ROW2 Arrayeintrag sollte davon ausgegangen werden, dass eine Auffüllung vorhanden ist.
Anforderungen
Zielplattform |
Universell |
Version |
Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Header |
Netioapi.h (netioapi.h einschließen) |
Bibliothek |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |