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

関連項目

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

GetIpInterfaceEntry

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_IPINTERFACE_ROW

NotifyRouteChange2