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 |