getIfStackTable 函数 (netioapi.h)

GetIfStackTable 函数检索网络接口堆栈行条目表,这些条目指定接口堆栈上网络接口的关系。

语法

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIfStackTable(
  [out] PMIB_IFSTACK_TABLE *Table
);

参数

[out] Table

指向缓冲区的指针,该缓冲区接收 MIB_IFSTACK_TABLE 结构中的接口堆栈行条目表。

返回值

如果函数成功,则返回值NO_ERROR。

如果函数失败,则返回值为以下错误代码之一。

返回代码 说明
ERROR_INVALID_PARAMETER
向该函数传递了无效参数。 如果在 Table 参数中传递 NULL 指针,则返回此错误。
ERROR_NOT_ENOUGH_MEMORY
内存资源不足,无法完成操作。
ERROR_NOT_FOUND
找不到接口堆栈条目。
其他
使用 FormatMessage 函数获取返回错误的消息字符串。

注解

GetIfStackTable 函数在 Windows Vista 及更高版本上定义。

The
GetIfStackTable 函数枚举本地系统上接口堆栈上的物理和逻辑网络接口,并在 MIB_IFSTACK_TABLE 结构中返回此信息。

接口堆栈条目在 Table 参数指向的缓冲区中的MIB_IFSTACK_TABLE结构中返回。 MIB_IFSTACK_TABLE 结构包含接口堆栈条目计数和每个接口堆栈条目的MIB_IFSTACK_ROW结构数组。

接口堆栈中的接口之间的关系是,在 MIB_IFSTACK_ROW 结构的 HigherLayerInterfaceIndex 成员中具有索引的接口正上方,其索引位于 MIB_IFSTACK_ROW 结构的 LowerLayerInterfaceIndex 成员中。

内存由 GetIfStackTable 函数为此结构中的 MIB_IFSTACK_TABLEMIB_IFSTACK_ROW 项分配。 当不再需要这些返回的结构时,通过调用 FreeMibTable 释放内存。

请注意,Table 参数指向的返回MIB_IFSTACK_TABLE结构可能包含 NumEntries 成员与 MIB_IFSTACK_TABLE 结构的Table 成员中的第一个MIB_IFSTACK_ROW数组项之间的对齐填充。 MIB_IFSTACK_ROW 数组条目 之间还可能存在对齐的填充。 对 MIB_IFSTACK_ROW 数组条目的任何访问都应假定可能存在填充。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 netioapi.h (包括 Iphlpapi.h)
Library Iphlpapi.lib
DLL Iphlpapi.dll

另请参阅

FreeMibTable

GetIfEntry2

GetIfTable2

GetInvertedIfStackTable

GetIpInterfaceEntry

InitializeIpInterfaceEntry

MIB_IFSTACK_ROW

MIB_IFSTACK_TABLE

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_INVERTEDIFSTACK_ROW

MIB_INVERTEDIFSTACK_TABLE

MIB_IPINTERFACE_ROW

NotifyIpInterfaceChange

SetIpInterfaceEntry