共用方式為


GetIfTable2Ex 函式

GetIfTable2Ex 函式會擷取 MIB-II 介面數據表,並指定要擷取的介面資訊層級。

語法

NETIOAPI_API GetIfTable2Ex(
  _In_  MIB_IF_TABLE_LEVEL Level,
  _Out_ PMIB_IF_TABLE2     *Table
);

參數

  • 層級 [in]
    要擷取的介面資訊層級。 這個參數可以是來自 MIB_IF_TABLE_LEVEL 列舉的其中一個值。

  • 數據表 [out]
    緩衝區的指標,這個緩衝區會接收 MIB_IF_TABLE2 結構中的介面數據表。

傳回值

如果函式成功,GetIfTable2Ex 會傳回STATUS_SUCCESS。

如果函式失敗,GetIfTable2Ex 會傳回下列其中一個錯誤碼:

傳回碼 描述
STATUS_INVALID_PARAMETER

無效的參數已傳遞至函式。 如果在 Level 參數中傳遞了不合法的值,則會傳回此錯誤。

STATUS_NOT_ENOUGH_MEMORY

記憶體資源不足,無法完成作業。

其他

使用 FormatMessage 函式取得傳回錯誤的訊息字串。

言論

GetIfTable2Ex 函式會列舉本機電腦上的邏輯和實體介面,並在 MIB_IF_TABLE2 結構中傳回這項資訊。

您的驅動程式可以使用類似的函式,GetIfTable2來擷取介面,但 GetIfTable2 不會讓驅動程式指定要傳回的介面層級。 呼叫 GetIfTable2Ex 函式,並將 Level 參數設定為 MibIfTableNormal 會擷取與呼叫 getIfTable2 函式相同的結果。

GetIfTable2Ex 傳回 Table 參數指向之緩衝區MIB_IF_TABLE2結構中的介面。 MIB_IF_TABLE2 結構包含介面計數和每個介面 MIB_IF_ROW2 結構的陣列。 GetIfTable2 為此結構中的MIB_IF_TABLE2結構和MIB_IF_ROW2專案配置 mmory。 當不再需要這些傳回的結構時,您的驅動程式應該呼叫freeMibTable 來釋放記憶體。

所有介面,包括 NDIS 中繼驅動程式介面和 NDIS 篩選驅動程式介面,都會針對 Level 參數的其中一個可能值傳回。 Level 參數的設定會影響傳回介面之 Table 參數所指向之MIB_IF_TABLE2結構中MIB_IF_ROW2結構的統計數據和狀態成員。 例如,網路適配器 (NIC) 具有 NDIS 迷你埠驅動程式。 您可以將 NDIS 中繼驅動程式安裝到上層通訊協定驅動程式與 NDIS 迷你埠驅動程式之間的介面。 NDIS 篩選驅動程式 可以附加在 NDIS 中繼驅動程式之上。 假設 NIC 會將 MediaConnectState 成員的 MIB_IF_ROW2 結構報告為 MediaConnectStateConnected,但 NDIS 篩選驅動程式會修改狀態,並將狀態報告為 MediaConnectStateDisconnected。 查詢介面資訊時,Level 參數設定為 MibIfTableNormal,則會報告篩選堆棧頂端的狀態 (MediaConnectStateDisconnected)。 當介面使用設定為 MibIfTableRawLevel 參數進行查詢時,會直接傳回介面層級的狀態(MediaConnectStateConnected)。

請注意,傳回的 MIB_IF_TABLE2 結構,Table 參數所指向的 ,可能包含 NumEntries 成員與 Table MIB_IF_TABLE2 成員中第一個MIB_IF_ROW2數位專案之間的間距。 對齊的邊框間距也可能存在於MIB_IF_ROW2陣列項目之間。 任何對MIB_IF_ROW2陣列專案的存取都應該假設填補可能存在。

要求

目標平臺

通用

版本

可在 Windows Vista 和更新版本的 Windows作系統中使用。

頁眉

Netioapi.h (包括 Netioapi.h)

圖書館

Netio.lib

IRQL

< DISPATCH_LEVEL

另請參閱

FreeMibTable

GetIfTable2

MIB_IF_TABLE_LEVEL

MIB_IF_TABLE2

MIB_IF_ROW2