getExtendedTcpTable 函数 (iphlpapi.h)
GetExtendedTcpTable 函数检索包含可用于应用程序的 TCP 终结点列表的表。
语法
IPHLPAPI_DLL_LINKAGE DWORD GetExtendedTcpTable(
[out] PVOID pTcpTable,
[in, out] PDWORD pdwSize,
[in] BOOL bOrder,
[in] ULONG ulAf,
[in] TCP_TABLE_CLASS TableClass,
[in] ULONG Reserved
);
参数
[out] pTcpTable
指向表结构的指针,该表结构包含可用于应用程序的筛选 TCP 终结点。 有关如何确定基于特定输入参数组合返回的表类型的信息,请参阅本文档后面的“备注”部分。
[in, out] pdwSize
pTcpTable 中返回的结构的估计大小(以字节为单位)。 如果此值设置得太小, 则此 函数返回ERROR_INSUFFICIENT_BUFFER,并且此字段将包含结构的正确大小。
[in] bOrder
一个 值,该值指定是否应对 TCP 连接表进行排序。 如果此参数设置为 TRUE,则表中的 TCP 终结点将按升序排序,从最低本地 IP 地址开始。 如果此参数设置为 FALSE,则表中的 TCP 终结点按检索顺序显示。
在对 TCP 终结点进行排序时,将 () 列出的 (比较以下值:
- 本地 IP 地址
- 当 ulAf 参数设置为 AF_INET6) 时,本地范围 ID (适用
- 本地 TCP 端口
- 远程 IP 地址
- 当 ulAf 参数设置为 AF_INET6) 时,远程范围 ID (适用
- 远程 TCP 端口
[in] ulAf
TCP 终结点使用的 IP 版本。
值 | 含义 |
---|---|
|
使用 IPv4。 |
|
使用 IPv6。 |
[in] TableClass
要检索的 TCP 表结构的类型。 此参数可以是 TCP_TABLE_CLASS 枚举中的值之一。
在为 Windows Vista 及更高版本发布的Windows SDK上,头文件的组织已更改,TCP_TABLE_CLASS枚举在 Iprtrmib.h 头文件中定义,而不是在 Iphlpapi.h 头文件中定义。
TCP_TABLE_CLASS 枚举值与 ulAf 参数的值组合在一起,以确定要检索的扩展 TCP 信息。
[in] Reserved
保留。 此值必须为零。
返回值
如果调用成功,则返回 值 NO_ERROR 。
如果函数失败,则返回值为以下错误代码之一。
返回代码 | 说明 |
---|---|
|
为表分配的空间不足。 表的大小在 pdwSize 参数中返回,并且必须在后续调用此函数时使用,以便成功检索表。
如果 pTcpTable 参数为 NULL,也会返回此错误。 |
|
向该函数传递了无效参数。 如果 TableClass 参数包含未在 TCP_TABLE_CLASS 枚举中定义的值,则返回此错误。 |
注解
此函数返回的表类型取决于 ulAf 参数和 TableClass 参数的特定组合。
当 ulAf 参数设置为 AF_INET 时,下表指示每个可能的 TableClass 值的 pTcpTable 参数指向的结构中要检索的 TCP 表类型。
TableClass 值 | pTcpTable 结构 |
---|---|
TCP_TABLE_BASIC_ALL | MIB_TCPTABLE |
TCP_TABLE_BASIC_CONNECTIONS | MIB_TCPTABLE |
TCP_TABLE_BASIC_LISTENER | MIB_TCPTABLE |
TCP_TABLE_OWNER_MODULE_ALL | MIB_TCPTABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_CONNECTIONS | MIB_TCPTABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_LISTENER | MIB_TCPTABLE_OWNER_MODULE |
TCP_TABLE_OWNER_PID_ALL | MIB_TCPTABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_CONNECTIONS | MIB_TCPTABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_LISTENER | MIB_TCPTABLE_OWNER_PID |
当 ulAf 参数设置为 AF_INET6 时,下表指示每个可能的 TableClass 值的 pTcpTable 参数指向的结构中要检索的 TCP 表类型。
TableClass 值 | pTcpTable 结构 |
---|---|
TCP_TABLE_OWNER_MODULE_ALL | MIB_TCP6TABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_CONNECTIONS | MIB_TCP6TABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_LISTENER | MIB_TCP6TABLE_OWNER_MODULE |
TCP_TABLE_OWNER_PID_ALL | MIB_TCP6TABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_CONNECTIONS | MIB_TCP6TABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_LISTENER | MIB_TCP6TABLE_OWNER_PID |
不支持将 ulAf 参数设置为 AF_INET6 且 TableClass 设置为 TCP_TABLE_BASIC_LISTENER、TCP_TABLE_BASIC_CONNECTIONS 或 TCP_TABLE_BASIC_ALL 调用的 GetExtendedTcpTable 函数,并返回ERROR_NOT_SUPPORTED。
在为 Windows Vista 及更高版本发布的Windows SDK上,头文件的组织已更改。 各种 MIB_TCPTABLE 结构在 Tcpmib.h 头文件中定义,而不是 在 Iprtrmib.h 头文件中定义。 请注意, Tcpmib.h 头文件自动包含在 Iprtrmib.h 中,它自动包含在 Iphlpapi.h 头文件中。 不应直接使用 Tcpmib.h 和 Iprtrmib.h 头文件。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista、Windows XP SP2 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008、Windows Server 2003 SP1 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | iphlpapi.h |
Library | Iphlpapi.lib |
DLL | Iphlpapi.dll |