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。

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

返回代码 说明
ERROR_INVALID_PARAMETER
向该函数传递了无效参数。 如果 DestinationAddressListSortedAddressPairListSortedAddressPairCount 参数 NULLDestinationAddressCount 大于 500,则返回此错误。 如果 SourceAddressList 不为 NULLSourceAddressPairCount 参数不为零,也会返回此错误。
ERROR_NOT_ENOUGH_MEMORY
没有足够的存储空间可用于处理此命令。
ERROR_NOT_SUPPORTED
不支持该请求。 如果本地计算机上没有 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

另请参阅

双堆栈套接字

FreeMibTable

SOCKADDR_IN6_PAIR

使用 SIO_ADDRESS_LIST_SORT

sockaddr