次の方法で共有


GetBestInterfaceEx 関数 (iphlpapi.h)

GetBestInterfaceEx 関数は、指定された IPv4 または IPv6 アドレスへの最適なルートを持つインターフェイスのインデックスを取得します。

構文

IPHLPAPI_DLL_LINKAGE DWORD GetBestInterfaceEx(
  [in]  sockaddr *pDestAddr,
  [out] PDWORD   pdwBestIfIndex
);

パラメーター

[in] pDestAddr

sockaddr 構造体の形式で、最適なルートを持つインターフェイスを取得する宛先 IPv6 または IPv4 アドレス。

[out] pdwBestIfIndex

pDestAddr で指定された IPv6 または IPv4 アドレスへの最適なルートを持つインターフェイスのインデックスへのポインター。

戻り値

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

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

リターン コード 説明
ERROR_CAN_NOT_COMPLETE
操作を完了できませんでした。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。 このエラーは、pdwBestIfIndex パラメーターで NULL ポインターが渡された場合、または pDestAddr パラメーターまたは pdwBestIfIndex パラメーターがアクセスできないメモリを指している場合に返されます。 このエラーは、 pdwBestIfIndex パラメーターが書き込みできないメモリを指している場合にも返すことができます。
ERROR_NOT_SUPPORTED
要求はサポートされていません。 このエラーは、ローカル コンピューターに IPv4 スタックがなく、 pDestAddr パラメーターに IPv4 アドレスが指定されているか、ローカル コンピューターに IPv6 スタックがなく、 pDestAddr パラメーターに IPv6 アドレスが指定されている場合に返されます。
その他
FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。

解説

GetBestInterfaceEx 関数は、IPv4 または IPv6 アドレスで使用できる点で GetBestInterface 関数とは異なります。

pDestAddr パラメーターが指す sockaddr 構造体の Family メンバーは、AF_INETまたはAF_INET6のいずれかの値に設定する必要があります。

Windows Vista 以降では、 pdwBestIfIndex パラメーターは IP ヘルパーによって内部的に NET_IFINDEX データ型へのポインターとして扱われます。

要件

   
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー iphlpapi.h
Library Iphlpapi.lib
[DLL] Iphlpapi.dll

関連項目

GetBestInterface

IP ヘルパー関数リファレンス

IP ヘルパーの開始ページ

MIB_BEST_IF

Sockaddr