createSortedAddressPairs 函数 (netioapi.h)
CreateSortedAddressPairs 函数获取提供的潜在 IP 目标地址列表,将目标地址与主机的本地 IP 地址配对,并根据最适合两个对等机之间的通信的地址对进行排序。
语法
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API CreateSortedAddressPairs(
[in, optional] const PSOCKADDR_IN6 SourceAddressList,
[in] ULONG SourceAddressCount,
[in] const PSOCKADDR_IN6 DestinationAddressList,
[in] ULONG DestinationAddressCount,
[in] ULONG AddressSortOptions,
[out] PSOCKADDR_IN6_PAIR *SortedAddressPairList,
[out] ULONG *SortedAddressPairCount
);
参数
[in, optional] SourceAddressList
必须为 NULL。 保留供将来使用。
[in] SourceAddressCount
必须为 0。 保留供将来使用。
[in] DestinationAddressList
指向包含潜在 IPv6 目标地址列表 的SOCKADDR_IN6 结构的数组的指针。 任何 IPv4 地址都必须以 IPv4 映射的 IPv6 地址格式表示,该格式使仅 IPv6 应用程序能够与 IPv4 节点通信。
[in] DestinationAddressCount
DestinationAddressList 参数指向的目标地址数。
[in] AddressSortOptions
保留供将来使用。
[out] SortedAddressPairList
一个指针,用于存储 SOCKADDR_IN6_PAIR 结构的数组,这些结构包含按首选通信顺序排序的 IPv6 地址对列表(如果函数调用成功)。
[out] SortedAddressPairCount
一个指针,用于存储 SortedAddressPairList 参数指向的地址对数(如果函数调用成功)。
返回值
如果函数成功,则返回值NO_ERROR。
如果函数失败,则返回值为以下错误代码之一。
返回代码 | 说明 |
---|---|
|
向该函数传递了无效参数。 如果 DestinationAddressList、 SortedAddressPairList 或 SortedAddressPairCount 参数 NULL 或 DestinationAddressCount 大于 500,则返回此错误。 如果 SourceAddressList 不为 NULL 或 SourceAddressPairCount 参数不为零,也会返回此错误。 |
|
没有足够的存储空间可用于处理此命令。 |
|
不支持该请求。 如果本地计算机上没有 IPv6 堆栈,则返回此错误。 |
|
使用 FormatMessage 获取返回错误的消息字符串。 |
注解
CreateSortedAddressPairs 函数在 Windows Vista 及更高版本上定义。
CreateSortedAddressPairs 函数采用源和目标 IPv6 地址的列表,并按排序顺序返回地址对列表。 列表按哪个地址对最适合源地址与目标地址之间的通信进行排序。
SourceAddressList 指向的源地址列表当前保留以供将来使用,并且必须是 NULL 指针。 SourceAddressCount 当前保留以供将来使用,必须为零。 CreateSortedAddressPairs 函数当前将主机的所有本地地址用于源地址列表。
DestinationAddressList 参数指向目标地址列表。 目标地址列表是 SOCKADDR_IN6 结构的数组。 任何 IPv4 地址都必须以 IPv4 映射的 IPv6 地址格式表示,该格式使仅 IPv6 应用程序能够与 IPv4 节点通信。 有关 IPv4 映射的 IPv6 地址格式的详细信息,请参阅 双堆栈套接字。 DestinationAddressCount 参数包含 DestinationAddressList 参数指向的目标地址数。 CreateSortedAddressPairs 函数最多支持 500 个目标地址。
如果 CreateSortedAddressPairs 函数成功,则 SortedAddressPairList 参数指向包含已排序地址对 SOCKADDR_IN6_PAIR 结构的数组。 如果不再需要此返回的列表,请通过调用 FreeMibTable 函数释放列表使用的内存。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | netioapi.h (包括 Iphlpapi.h) |
Library | Iphlpapi.lib |
DLL | Iphlpapi.dll |