getExtendedUdpTable 函数 (iphlpapi.h)
GetExtendedUdpTable 函数检索包含应用程序可用的 UDP 终结点列表的表。
语法
IPHLPAPI_DLL_LINKAGE DWORD GetExtendedUdpTable(
[out] PVOID pUdpTable,
[in, out] PDWORD pdwSize,
[in] BOOL bOrder,
[in] ULONG ulAf,
[in] UDP_TABLE_CLASS TableClass,
[in] ULONG Reserved
);
parameters
[out] pUdpTable
指向表结构的指针,该表结构包含可用于应用程序的筛选 UDP 终结点。 有关如何根据特定输入参数组合确定返回的表类型的信息,请参阅本文档后面的备注部分。
[in, out] pdwSize
pUdpTable 中返回的结构的估计大小(以字节为单位)。 如果此值设置得太小, 则此 函数将返回ERROR_INSUFFICIENT_BUFFER,并且此字段将包含结构的正确大小。
[in] bOrder
一个 值,该值指定是否应对 UDP 终结点表进行排序。 如果此参数设置为 TRUE,则表中的 UDP 终结点按升序排序,从最低本地 IP 地址开始。 如果此参数设置为 FALSE,则表中的 UDP 终结点按检索顺序显示。
对 UDP 终结点进行排序时,将比较下列值:
- 本地 IP 地址
- 当 ulAf 参数设置为 AF_INET6) 时,本地范围 ID (适用
- 本地 UDP 端口
[in] ulAf
UDP 终结点使用的 IP 版本。
值 | 含义 |
---|---|
|
使用 IPv4。 |
|
使用 IPv6。 |
[in] TableClass
要检索的 UDP 表结构的类型。 此参数可以是 UDP_TABLE_CLASS 枚举中的值之一。
在针对 Windows Vista 及更高版本发布的 Windows SDK 上,头文件的组织已更改, UDP_TABLE_CLASS 枚举在 Iprtrmib.h 头文件中定义,而不是 在 Iphlpapi.h 头文件中定义。
UDP_TABLE_CLASS 枚举值与 ulAf 参数的值相结合,以确定要检索的扩展 UDP 信息。
[in] Reserved
保留。 此值必须为零。
返回值
如果调用成功,则返回 NO_ERROR 的值。
如果函数失败,则返回值为以下错误代码之一。
返回代码 | 说明 |
---|---|
|
为表分配的空间不足。 表的大小在 pdwSize 参数中返回,并且必须在后续调用此函数时使用,才能成功检索表。
如果 pUdpTable 参数为 NULL,也会返回此错误。 |
|
向该函数传递了无效参数。 如果 TableClass 参数包含 UDP_TABLE_CLASS枚举中 未定义的值,则返回此错误。 |
注解
此函数返回的表类型取决于 ulAf 参数和 TableClass 参数的特定组合。
当 ulAf 参数设置为 AF_INET 时,下表指示在 pUdpTable 参数指向的每个可能的 TableClass 值的结构中检索的 UDP 表类型。
TableClass 值 | pUdpTable 结构 |
---|---|
UDP_TABLE_BASIC | MIB_UDPTABLE |
UDP_TABLE_OWNER_MODULE | MIB_UDPTABLE_OWNER_MODULE |
UDP_TABLE_OWNER_PID | MIB_UDPTABLE_OWNER_PID |
当 ulAf 参数设置为 AF_INET6 时,下表指示在 pUdpTable 参数指向的每个可能的 TableClass 值的结构中检索的 TCP 表类型。
TableClass 值 | pUdpTable 结构 |
---|---|
UDP_TABLE_BASIC | MIB_UDP6TABLE |
UDP_TABLE_OWNER_MODULE | MIB_UDP6TABLE_OWNER_MODULE |
UDP_TABLE_OWNER_PID | MIB_UDP6TABLE_OWNER_PID |
调用 时 getExtendedUdpTable 函数,将 ulAf 参数设置为 AF_INET6并且 TableClass 设置为 UDP_TABLE_BASIC 仅在 Windows Vista 及更高版本上受支持。
在 Service Pack 1 (SP1) 的 Windows Server 2003 和 Service Pack 2 (SP2) 的 Windows XP 上,调用的 GetExtendedUdpTable 函数 将 ulAf 参数设置为 AF_INET6 , TableClass 设置为 UDP_TABLE_BASIC 失败并返回 ERROR_NOT_SUPPORTED。
在针对 Windows Vista 及更高版本发布的 Windows SDK 上,头文件的组织方式已更改。 各种 MIB_UDPTABLE 结构在 Udpmib.h 头文件中定义,而不是 在 Iprtrmib.h 头文件中定义。 请注意,Udpmib.h 头文件会自动包含在 Iphlpapi.h 头文件中。Iprtrmib.h 中会自动包含该头文件。 不应直接使用 Udpmib.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 |