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