GetBestRoute2 関数
GetBestRoute2 関数は、ローカル コンピューター上の IP ルート エントリを取得して、指定された宛先 IP アドレスへの最適なルートを取得します。
構文
NETIOAPI_API GetBestRoute2(
_In_opt_ NET_LUID *InterfaceLuid,
_In_ NET_IFINDEX InterfaceIndex,
_In_opt_ const SOCKADDR_INET *SourceAddress,
_In_ const SOCKADDR_INET *DestinationAddress,
_In_ ULONG AddressSortOptions,
_Out_ PMIB_IPFORWARD_ROW2 BestRoute,
_Out_ SOCKADDR_INET *BestSourceAddress
);
パラメーター
InterfaceLuid [in, optional]
IP ルート エントリに関連付けられているネットワーク インターフェイスを指定するローカル一意識別子 (LUID)。InterfaceIndex [in]
IP ルート エントリに関連付けられているネットワーク インターフェイスを指定するローカル インデックス値。 このインデックス値は、ネットワーク アダプターを無効にしてから有効にした場合、またはその他の状況で変更される可能性があるため、この値は永続的ではありません。SourceAddress [in, optional]
送信元 IP アドレス。 ドライバーは、このパラメーターを省略し、NULL ポインターを渡すことができます。DestinationAddress [in]
宛先 IP アドレス。AddressSortOptions [in]
IP アドレスの並べ替え方法に影響する一連のオプション。 このパラメーターは現在使用されていません。BestRoute [out]
送信元 IP アドレスから宛先 IP アドレスへの最適なルートの MIB_IPFORWARD_ROW2 構造体へのポインター。BestSourceAddress [out]
最適なソース IP アドレスへのポインター。
戻り値
GetBestRoute2 は、関数が成功した場合にSTATUS_SUCCESSを返します。
関数が失敗した場合、GetBestRoute2 は次のいずれかのエラー コードを返します。
リターン コード | 形容 |
---|---|
STATUS_INVALID_PARAMETER | 無効なパラメーターが関数に渡されました。 このエラーは、DestinationAddress、BestSourceAddress、または BestRoute パラメーターで、NULL ポインターが渡された場合 返されます。 このエラーは、InterfaceLuid パラメーターと InterfaceIndex パラメーターの両方が指定されていない場合にも返されます。 このエラーは、DestinationAddress パラメーターで IPv4 または IPv6 アドレスとファミリが指定されていない場合にも返されます |
STATUS_NOT_FOUND | 指定されたインターフェイスが見つかりませんでした。 このエラーは、InterfaceLuid または InterfaceIndex パラメーター 指定したネットワーク インターフェイスが見つからなかった場合に返されます。 |
STATUS_NOT_SUPPORTED | 要求はサポートされていません。 このエラーは、ローカル コンピューターに IPv4 スタックがなく、IPv4 アドレスとファミリが DestinationAddress パラメーターで指定された場合、またはローカル コンピューターに IPv6 スタックがなく、DestinationAddress パラメーターに IPv4 アドレスとファミリが指定されていない場合に返されます。 |
その他の | FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。 |
備考
GetBestRoute2 関数は、送信元 IP アドレスから宛先 IP アドレスへの最適なルートの MIB_IPFORWARD_ROW2 構造エントリを取得するために使用されます。
入力時に、ドライバーは次のパラメーターを初期化する必要があります。
DestinationAddress を する
有効な IPv4 または IPv6 アドレスとファミリに設定します。InterfaceLuid または InterfaceIndex の を する
これらのパラメーターは、前に示した順序で使用されます。 そのため、interfaceLuid 指定した場合、このパラメーターを使用してインターフェイスが決定されます。 InterfaceLuid メンバーに値が設定されていない場合 (このパラメーターの値が 0 に設定されました)、インターフェイスを決定するために、InterfaceIndex パラメーターが次に使用されます。
さらに、入力時に、ドライバーは、SourceAddress パラメーターを優先 IPv4 または IPv6 アドレスとファミリに初期化できます。
出力時に、呼び出しが成功すると、GetBestRoute2 は、送信元 IP アドレスから宛先 IP アドレスから最適なルートのMIB_IPFORWARD_ROW2構造を取得します。
必要条件
ターゲット プラットフォーム |
ユニバーサル |
バージョン |
Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ヘッダ |
Netioapi.h (Netioapi.h を含む) |
図書館 |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |
関連項目
CreateIpForwardEntry2の
DeleteIpForwardEntry2の
GetIpForwardEntry2の
GetIpForwardTable2の
SetIpForwardEntry2の