GetIpForwardEntry2 関数
GetIpForwardEntry2 関数は、ローカル コンピューター上の IP ルート エントリの情報を取得します。
構文
NETIOAPI_API GetIpForwardEntry2(
_Inout_ PMIB_IPFORWARD_ROW2 Row
);
パラメーター
- Row [in, out]
IP ルート エントリの MIB_IPFORWARD_ROW2 構造体エントリへのポインター。 正常に返されると、この構造体は IP ルート エントリのプロパティで更新されます。
戻り値
関数が成功した場合、GetIpForwardEntry2 は、STATUS_SUCCESS を返します。
関数が失敗した場合、GetIpForwardEntry2 は次のいずれかのエラー コードを返します:
リターン コード | 説明 |
---|---|
STATUS_INVALID_PARAMETER | その関数に渡された無効なパラメーター。 このエラーは、次のいずれかの状況が発生した場合に返されます:
|
STATUS_NOT_FOUND | 指定されたインターフェイスが見つかりませんでした。 Row パラメーターが指す MIB_IPFORWARD_ROW2 構造体の InterfaceLuid メンバーまたは InterfaceIndex メンバーで指定されるネットワーク インタフェースを関数が見つけられない場合、このエラーが返されます。 |
STATUS_NOT_SUPPORTED | 要求はサポートされていません。 このエラーは、ローカル コンピューター上に IPv4 スタックがなく、Row パラメーターが指す MIB_IPFORWARD_ROW2 構造体の DestinationPrefix メンバーのアドレス ファミリで AF_INET が指定されていた場合、またはローカル コンピューター上に IPv6 スタックがなく、DestinationPrefix メンバーのアドレス ファミリに対して AF_INET6 が指定されている場合に返されます。 |
その他 | FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。 |
解説
GetIpForwardEntry2 関数は、MIB_IPFORWARD_ROW2 構造体エントリを取得するために使用されます。
入力時に、ドライバーは Row パラメーターが指す MIB_IPFORWARD_ROW2 構造体の次のメンバーを初期化する必要があります。
DestinationPrefix
有効な IPv4 または IPv6 アドレス プレフィックスとファミリに設定します。NextHop
有効な IPv4 または IPv6 アドレスとファミリに設定します。InterfaceLuid または InterfaceIndex
これらのメンバーは、前に示した順序で使用されます。 したがって、InterfaceLuid が指定されている場合は、このメンバーを使用してインターフェイスが決定されます。 InterfaceLuid メンバーに値が設定されていない (このメンバーの値がゼロに設定されている) 場合は、次に InterfaceIndex メンバーがインターフェイスを決定するために使用されます。
出力時に、呼び出しが成功すると、GetIpForwardEntry2 は IP ルート エントリの他のプロパティを取得し、Row パラメーターが指す MIB_IPFORWARD_ROW2 構造体を入力します。
Row パラメーターが指す MIB_IPFORWARD_ROW2 構造体の Metric メンバーで指定されたルート メトリック オフセットは、完全なルート メトリックの一部のみを表します。 完全なメトリックは、このルート メトリックに、関連付けられたインターフェイスの MIB_IPINTERFACE_ROW 構造体の Metric メンバーで指定されたインターフェイス メトリックを追加した組み合わせです。 ドライバーは、GetIpInterfaceEntry 関数を呼び出すことで、インターフェイス メトリックを取得できます。
ドライバーは、GetIpForwardTable2 関数を呼び出して、ローカル コンピューター上の IP ルート エントリを列挙できます。
要件
対象プラットフォーム |
ユニバーサル |
バージョン |
Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ヘッダー |
Netioapi.h (Netioapi.h を含む) |
ライブラリ |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |