次の方法で共有


RtmAddRoute 関数

[この API は ルーティング テーブル マネージャー バージョン 2 API に置き換えられているので、Windows Server 2003 以降では使用できません。 アプリケーションでは、ルーティング テーブル マネージャー バージョン 2 API を使用する必要があります。

RtmAddRoute 関数は、ルート エントリを追加するか、既存のルート エントリを更新します。

構文

DWORD RtmAddRoute(
  _In_  HANDLE ClientHandle,
  _In_  PVOID  Route,
  _In_  DWORD  TimeToLive,
  _Out_ DWORD  Flags,
  _Out_ PVOID  CurBestRoute,
  _Out_ PVOID  PrevBestRoute
);

パラメーター

ClientHandle [in]

ルートを追加または更新したクライアント、したがってルーティング プロトコルを識別するハンドル。 RtmRegisterClient を呼び出して、このハンドルを取得します。

Route [in]

新規または更新されたルートを指定するプロトコル ファミリ固有の構造体へのポインター。 ルーティング テーブル マネージャーは、ルーティング テーブルを更新するために次のフィールドを使用します。

説明
RR_Network
宛先ネットワーク番号を指定します。
RR_InterfaceID
ルートを受信したインターフェイスのインデックスを指定します。
RR_NextHopAddress
次ホップ ルーターのアドレスを指定します。
RR_FamilySpecificData
プロトコル ファミリに固有のデータを指定します。 データはルーティング テーブル マネージャーに対して透過的ですが、ルートを比較してルート情報が変更されたかどうかを判断する際に考慮されます。 データは、ルーティング プロトコルに依存しないメトリック値を設定するためにも使用されます。 したがって、このデータは、宛先ネットワークに最適なルートを決定するために使用されます。
RR_ProtocolSpecificData
ルートを指定したルーティング プロトコルに固有のデータを指定します。
RR_TimeStamp
現在のシステム時刻を指定します。 このフィールドは、ルーティング テーブル マネージャーによって設定されます。

TimeToLive [in]

指定したルートをルーティング テーブルに保持する秒数を指定します。 このパラメーターが INFINITE に設定されている場合、ルートは明示的に削除されるまで保持されます。 TimeToLive の現在の制限は、2147483秒 (24 日以上) です。

フラグ [out]

DWORD 変数へのポインター。 この変数の値は、ルーティング テーブル マネージャーによって設定されます。 値は、変更の種類と、指定されたバッファーで返された情報を示します。 このパラメーターは次のいずれかです。

Flags 説明
RTM_NO_CHANGE
追加または更新によって重要なルート パラメーターが変更されなかったか、影響を受けるルート エントリが宛先ネットワークのエントリの中で最適なルートではありません。
RTM_ROUTE_ADDED
宛先ネットワークのルートが追加されました。 CurBestRoute パラメーターは、追加されたルートの情報を指します。
RTM_ROUTE_CHANGED
宛先ネットワークへの最適なルートに対して、少なくとも 1 つの重要なパラメーターが変更されました。 重要なパラメーターは次のとおりです。
プロトコル識別子
インターフェイス インデックス
次ホップ アドレス
プロトコル ファミリ固有のデータ (ルート メトリックを含む)

PrevBestRoute パラメーターは、変更前と同様にルート情報を指します。 CurBestRoute パラメーターは、現在の (変更後) ルート情報を指します。

CurBestRoute [out]

現在の最適ルート情報を受け取る構造体へのポインター (存在する場合)。 構造体の種類は、プロトコル ファミリ (IP や IPX など) に固有です。

このパラメーターは省略可能です。 呼び出し元がこのパラメーターに NULL を 指定した場合、現在の最適ルート情報は返されません。

PrevBestRoute [out]

前の最適ルート情報を受け取る構造体へのポインター (存在する場合)。 構造体の種類は、プロトコル ファミリ (IP や IPX など) に固有です。

このパラメーターは省略可能です。 呼び出し元がこのパラメーターに NULL を 指定した場合、前のベスト ルート情報は返されません。

戻り値

戻り値は、次のいずれかのコードです。

説明
NO_ERROR
ルートが正常に追加または更新されました。
ERROR_INVALID_HANDLE
クライアント ハンドル パラメーターが有効なハンドルではありません。
ERROR_INVALID_PARAMETER
ルート構造に無効なパラメーターが含まれています。
ERROR_NO_SYSTEM_RESOURCES
操作を実行するためのリソースが不足しています。
ERROR_NOT_ENOUGH_MEMORY
ルート エントリを割り当てるためのメモリが不足しています。

解説

この関数は、この操作の結果として宛先ネットワークへの最適なルートが変更された場合に、ルート変更メッセージを生成します。 ただし、ルート変更メッセージは、この呼び出しを行うクライアントには送信されません。 代わりに、フラグ、CurBestRouteおよび PrevBestRoute パラメーターを使用して、この関数によって関連情報が直接そのクライアントに返されます。

要件

要件
サポートされている最小のクライアント
サポートなし
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
サーバー サポートの終了
Windows Server 2003
ヘッダー
Rtm.h
ライブラリ
Rtm.lib
[DLL]
Rtm.dll

関連項目

ルーティング テーブル マネージャー バージョン 1 リファレンス

ルーティング テーブル マネージャー バージョン 1 の関数

RtmDeleteRoute

RtmDequeueRouteChangeMessage