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。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
操作を完了できませんでした。 |
|
無効なパラメーターが関数に渡されました。 このエラーは、pdwBestIfIndex パラメーターで NULL ポインターが渡された場合、または pDestAddr パラメーターまたは pdwBestIfIndex パラメーターがアクセスできないメモリを指している場合に返されます。 このエラーは、 pdwBestIfIndex パラメーターが書き込みできないメモリを指している場合にも返すことができます。 |
|
要求はサポートされていません。 このエラーは、ローカル コンピューターに 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 |