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 返回缓冲区中 表 参数指向的MIB_IF_TABLE2结构中的接口。 MIB_IF_TABLE2结构包含接口计数和每个接口 MIB_IF_ROW2 结构的数组。 GetIfTable2 为此结构中的MIB_IF_TABLE2结构和MIB_IF_ROW2项分配 mmory。 不再需要这些返回的结构时,驱动程序应通过调用 FreeMibTable来释放内存。
所有接口(包括 NDIS 中间驱动程序接口和 NDIS 筛选器驱动程序接口)都会为 Level 参数的可能值之一返回。 级别 参数的设置会影响返回接口 表 参数指向的MIB_IF_TABLE2结构中的统计信息和状态 MIB_IF_ROW2成员的方式。 例如,网络接口卡(NIC)具有 NDIS 微型端口驱动程序。 可以将 NDIS 中间驱动程序安装到上层协议驱动程序和 NDIS 微型端口驱动程序之间的接口。 NDIS 筛选器驱动程序 可以附加到 NDIS 中间驱动程序的顶部。 假定 NIC 将 MediaConnectState 成员报告为 MIB_IF_ROW2 结构的 MediaConnectStateConnected,但 NDIS 筛选器驱动程序将修改状态,并将状态报告为 MediaConnectStateDisconnected。 查询接口信息时,级别 参数设置为 MibIfTableNormal,将报告筛选器堆栈顶部的状态(MediaConnectStateDisconnected)。 当使用设置为 MibIfTableRaw的 Level 参数查询接口时,将直接返回接口级别的状态(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 |