共用方式為


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 會將 MIB_IF_ROW2 結構的 MediaConnectState 成員回報為 MediaConnectstateConnected,但 NDIS 篩選驅動程式會修改狀態,並將狀態報表為 MediaConnectStateDisconnected。 當介面資訊使用 Level 參數設定為 MibIfTableNormal進行查詢時,會報告篩選堆疊頂端 (MediaConnectStateDisconnected) 的狀態。 當介面使用 Level 參數設定為 MibIfTableRaw進行查詢時,會直接 (MediaConnectStateConnected) 傳回介面層級的狀態。

請注意,傳回的 MIB_IF_TABLE2 結構, Table 參數所指向的 結構可能包含 NumEntries 成員與 MIB_IF_TABLE2 結構之 Table 成員中第一個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