GetBestRoute2 関数 (netioapi.h)
GetBestRoute2 関数は、指定された宛先 IP アドレスへの最適なルートを得るために、ローカル コンピューター上の IP ルート エントリを取得します。
構文
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetBestRoute2(
[in, optional] NET_LUID *InterfaceLuid,
[in] NET_IFINDEX InterfaceIndex,
[in] const SOCKADDR_INET *SourceAddress,
[in] const SOCKADDR_INET *DestinationAddress,
[in] ULONG AddressSortOptions,
[out] PMIB_IPFORWARD_ROW2 BestRoute,
[out] SOCKADDR_INET *BestSourceAddress
);
パラメーター
[in, optional] InterfaceLuid
IP ルート エントリに関連付けられているネットワーク インターフェイスを指定するローカル一意識別子 (LUID)。
[in] InterfaceIndex
IP ルート エントリに関連付けられているネットワーク インターフェイスを指定するローカル インデックス値。 このインデックス値は、ネットワーク アダプターを無効にしてから有効にした場合、またはその他の状況で変更される可能性があり、永続的と見なすべきではありません。
[in] SourceAddress
送信元 IP アドレス このパラメーターは省略し、 NULL ポインターとして渡すことができます。
[in] DestinationAddress
宛先 IP アドレス
[in] AddressSortOptions
IP アドレスの並べ替え方法に影響する一連のオプション。 このパラメーターは現在使用されていません。
[out] BestRoute
送信元 IP アドレスから宛先 IP アドレスへの最適なルートの MIB_IPFORWARD_ROW2 へのポインター。
[out] BestSourceAddress
最適なソース IP アドレスへのポインター。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
無効なパラメーターが関数に渡されました。 このエラーは、 Null ポインターが DestinationAddress、 BestSourceAddress、または BestRoute パラメーターで渡された場合に返されます。 DestinationAddress パラメーターで IPv4 または IPv6 アドレスとファミリが指定されていない場合も、このエラーが返されます。 |
|
指定したインターフェイスが見つかりませんでした。 InterfaceLuid パラメーターまたは InterfaceIndex パラメーターで指定されたネットワーク インターフェイスが見つからなかった場合、このエラーが返されます。 |
|
要求はサポートされていません。 このエラーは、ローカル コンピューター上に IPv4 スタックがなく、 DestinationAddress パラメーターに IPv4 アドレスとファミリが指定されている場合に返されます。 このエラーは、ローカル コンピューターに IPv6 スタックがなく、 DestinationAddress パラメーターに IPv6 アドレスとファミリが指定されている場合にも返されます。 |
|
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。 |
注釈
GetBestRoute2 関数は、Windows Vista 以降で定義されています。
GetBestRoute2 関数は、ソース IP アドレスから宛先 IP アドレスへの最適なルートのMIB_IPFORWARD_ROW2構造エントリを取得するために使用されます。
入力時に、 DestinationAddress パラメーターを有効な IPv4 または IPv6 アドレスとファミリに初期化する必要があります。 入力時に、 SourceAddress パラメーターを優先 IPv4 または IPv6 アドレスとファミリに初期化できます。 さらに、 InterfaceLuid または InterfaceIndex の少なくとも 1 つのパラメーターを初期化する必要があります。
パラメーターは、上記の順序で使用されます。 したがって、 InterfaceLuid が指定されている場合は、このメンバーを使用してインターフェイスが決定されます。 InterfaceLuid メンバーに値が設定されていない場合 (このメンバーの値が 0 に設定されました)、InterfaceIndex メンバーが次に使用されてインターフェイスが決定されます。
呼び出しが成功すると、 GetBestRoute2 は送信元 IP アドレスから宛先 IP アドレスから最適なルート の構造を 取得してMIB_IPFORWARD_ROW2します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | netioapi.h (Iphlpapi.h を含む) |
Library | Iphlpapi.lib |
[DLL] | Iphlpapi.dll |