CreateSortedAddressPairs 関数 (netioapi.h)

CreateSortedAddressPairs 関数は、指定された潜在的な IP 宛先アドレスのリストを受け取り、宛先アドレスをホスト マシンのローカル IP アドレスとペアにし、2 つのピア間の通信に最適なアドレス ペアに従ってペアを並べ替えます。

構文

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

関数呼び出 しが 成功した場合に、通信の優先順序で並べ替えられた IPv6 アドレスのペアのリストを含む、SOCKADDR_IN6_PAIR構造体の配列を格納するポインター。

[out] SortedAddressPairCount

関数呼び出しが成功した場合に SortedAddressPairList パラメーターによって指されるアドレス ペアの数を格納するポインター。

戻り値

関数が成功した場合、戻り値はNO_ERROR。

関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。

リターン コード 説明
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。 DestinationAddressListSortedAddressPairList、または SortedAddressPairCount パラメーター NULL、または DestinationAddressCount が 500 より大きい場合、このエラーが返されます。 SourceAddressList が NULL ではない場合、または SourceAddressPairCount パラメーターが 0 でない場合も、このエラーが返されます。
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