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

その関数に渡された無効なパラメーター。 このエラーは、次のいずれかの状況が発生した場合に返されます:

  • Row パラメーターには NULL ポインターが渡されます。

  • Row パラメーターが指す MIB_IPFORWARD_ROW2 構造体の DestinationPrefix メンバーは指定されませんでした。

  • MIB_IPFORWARD_ROW2 構造体の NextHop メンバーが指定されませんでした。

  • MIB_IPFORWARD_ROW2 構造体の InterfaceLuid メンバーと InterfaceIndex メンバーの両方が指定されていませんでした。

  • MIB_IPFORWARD_ROW2 構造体の PreferredLifetime メンバーは ValidLifetime メンバーよりも大きくなります。

  • MIB_IPFORWARD_ROW2 構造体の SitePrefixLength メンバーが、DestinationPrefix メンバーで指定されたプレフィックスの長さを超えています。

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

関連項目

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardTable2

GetIpInterfaceEntry

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_IPINTERFACE_ROW

NotifyRouteChange2

SetIpForwardEntry2