CreateSortedAddressPairs (Compact 2013)
3/26/2014
This function takes a supplied list of potential IP destination addresses, pairs the destination addresses together with the host machine's local IP addresses, and sorts the pairs according to which address pair is best suited for communication between the two peers.
Syntax
NETIOAPI_API CreateSortedAddressPairs(
__in_opt 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
);
Parameters
- SourceAddressList
Reserved; set to NULL.
- SourceAddressCount
Reserved; set to 0 (zero).
- DestinationAddressList
A pointer to an array of SOCKADDR_IN6 structures that contain a list of potential IPv6 destination addresses. Any IPv4 addresses must be represented in the IPv4-mapped IPv6 address format which enables an IPv6 only application to communicate with an IPv4 node.
- DestinationAddressCount
The number of destination addresses pointed to by the DestinationAddressList parameter.
- AddressSortOptions
Reserved.
- SortedAddressPairList
A pointer to store an array of SOCKADDR_IN6_PAIR structures that contain a list of pairs of IPv6 addresses sorted in the preferred order of communication, if the function call is successful.
- SortedAddressPairCount
A pointer to store the number of address pairs pointed to by the SortedAddressPairList parameter, if the function call is successful.
Return Value
Return code |
Description |
---|---|
NO_ERROR |
The function succeeds. |
ERROR_INVALID_PARAMETER |
An invalid parameter was passed to the function. This error is returned if the DestinationAddressList, SortedAddressPairList, or SortedAddressPairCount parameters NULL, or the DestinationAddressCount was greater than 500. This error is also returned if the SourceAddressList is not NULL or the SourceAddressPairCount parameter is not zero. |
ERROR_NOT_ENOUGH_MEMORY |
Not enough storage is available to process this command. |
ERROR_NOT_SUPPORTED |
The request is not supported. This error is returned if no IPv6 stack is located on the local device. |
Other |
Use FormatMessage to obtain the message string for the returned error. |
Remarks
The CreateSortedAddressPairs function takes a list of source and destination IPv6 addresses, and returns a list of pairs of addresses in sorted order. The list is sorted by which address pair is best suited for communication between the source and destination address.
The list of source addresses pointed to by the SourceAddressList is currently reserved and must be a NULL pointer. The SourceAddressCount is currently reserved and must be zero. The CreateSortedAddressPairs function currently uses all the host machine's local addresses for the source address list.
The list of destination addresses is pointed to by the DestinationAddressList parameter. The list of destination addresses is an array of SOCKADDR_IN6 structures. Any IPv4 addresses must be represented in the IPv4-mapped IPv6 address format which enables an IPv6 only application to communicate with an IPv4 node. The DestinationAddressCount parameter contains the number of destination addresses pointed to by the DestinationAddressList parameter. The CreateSortedAddressPairs function supports a maximum of 500 destination addresses.
If the CreateSortedAddressPairs function is successful, the SortedAddressPairList parameter points to an array of SOCKADDR_IN6_PAIR structures that contain the sorted address pairs. When this returned list is no longer required, free the memory used by the list by calling the FreeMibTable function.