次の方法で共有


RtmCreateRouteEnum 関数 (rtmv2.h)

RtmCreateRouteEnum 関数は、ルーティング テーブル内の特定の宛先または宛先の範囲のルートの列挙を作成します。 クライアントは、1 つまたは複数のビュー、またはすべてのビューのルートを列挙できます。

構文

DWORD RtmCreateRouteEnum(
  [in]  RTM_ENTITY_HANDLE RtmRegHandle,
  [in]  RTM_DEST_HANDLE   DestHandle,
  [in]  RTM_VIEW_SET      TargetViews,
  [in]  RTM_ENUM_FLAGS    EnumFlags,
  [in]  PRTM_NET_ADDRESS  StartDest,
  [in]  RTM_MATCH_FLAGS   MatchingFlags,
  [in]  PRTM_ROUTE_INFO   CriteriaRoute,
  [in]  ULONG             CriteriaInterface,
  [out] PRTM_ENUM_HANDLE  RtmEnumHandle
);

パラメーター

[in] RtmRegHandle

RtmRegisterEntity の以前の呼び出しから取得したクライアントを処理します。

[in] DestHandle

ルートを列挙する宛先を処理します。 このパラメーターは省略可能であり、 NULL に設定できます。 NULL を指定すると、すべての宛先のすべてのルートが列挙されます。 EnumFlags にRTM_ENUM_STARTが含まれている場合は NULL を指定します

[in] TargetViews

列挙体の作成時に使用するビューのセットを指定します。 次のフラグが使用されます。

定数 説明
RTM_VIEW_MASK_ANY
すべてのビューから変換先を返します。 これが既定値です。
RTM_VIEW_MASK_UCAST
ユニキャスト ビューから宛先を返します。
RTM_VIEW_MASK_MCAST
マルチキャスト ビューから宛先を返します。

[in] EnumFlags

列挙に含めるルートを指定します。 2 セットのフラグが使用されます。各セットから 1 つのフラグ (RTM_ENUM_ALL_ROUTESやRTM_ENUM_STARTなど) を使用します。

定数 説明
RTM_ENUM_ALL_ROUTES
すべてのルートを返します。
RTM_ENUM_OWN_ROUTES
クライアントが所有するルートのみを返します。
 
定数 説明
RTM_ENUM_NEXT
指定したアドレス/マスクの長さ (10/8 など) から始まるルートを列挙します。 列挙はルーティング テーブルの末尾まで続きます。
RTM_ENUM_RANGE
アドレス/マスクの長さ (10/8 など) で指定された指定された範囲内のルートを列挙します。
RTM_ENUM_START
0/0 から始まるルートを列挙します。 NetAddressNULL を指定します。

[in] StartDest

列挙体の開始アドレスを含む RTM_NET_ADDRESS 構造体へのポインター。 EnumFlags にRTM_ENUM_STARTが含まれている場合、このパラメーターは無視されます。

[in] MatchingFlags

一致するルートの要素を指定します。 特に明記されていない限り、 CriteriaRouteCriteriaInterface で指定された条件に一致するルートのみが返されます。 次のフラグが使用されます。

定数 説明
RTM_MATCH_FULL
ルートをすべての条件と一致させます。
RTM_MATCH_INTERFACE
同じインターフェイス上にあるルートと一致します。 クライアントは CriteriaRouteNULL を指定できます。
RTM_MATCH_NEIGHBOUR
同じ近隣にルートを一致させます。
RTM_MATCH_NEXTHOP
同じネクスト ホップを持つルートと一致します。
RTM_MATCH_NONE
どの条件にも一致しません。宛先のすべてのルートが返されます。 このフラグが設定されている場合、 CriteriaRoute パラメーターは無視されます。
RTM_MATCH_OWNER
同じ所有者を持つルートを照合します。
RTM_MATCH_PREF
同じ優先順位を持つルートと一致します。

[in] CriteriaRoute

列挙するルートを指定します。 このパラメーターは省略可能であり、MatchingFlags にRTM_MATCH_INTERFACEまたはRTM_MATCH_NONEが含まれている場合は NULL に設定できます。

[in] CriteriaInterface

どのインターフェイス ルートを配置するかを指定する ULONG へのポインター。 MatchingFlags にRTM_MATCH_INTERFACEが含まれている場合を除き、このパラメーターは無視されます。

[out] RtmEnumHandle

入力時、 RtmEnumHandleNULL へのポインターです。

出力時に、 RtmEnumHandle は列挙へのハンドルへのポインターを受け取ります。 RtmGetEnumRoutes、RtmReleaseRoutesRtmDeleteEnumHandle に対する後続のすべての呼び出しで、このハンドルを使用します。

戻り値

関数が成功した場合、戻り値はNO_ERROR。

関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。

意味
ERROR_INVALID_PARAMETER
パラメーターに正しくない情報が含まれています。
ERROR_NOT_ENOUGH_MEMORY
この操作を完了するのに十分なメモリがありません。
ERROR_NOT_SUPPORTED
指定されたビューの 1 つ以上はサポートされていません。
 
 

注釈

EnumFlags にRTM_ENUM_RANGEが含まれている場合は、NetAddress を使用して、列挙するルーティング テーブルの範囲を指定します。 たとえば、クライアントが NetAddress を 10/8 に設定した場合、10.0.0.0/8 から 10.255.255.255/32 の範囲の宛先が返されます。

列挙ハンドルが不要になったら、 RtmDeleteEnumHandle を呼び出して解放します。

この関数を使用するサンプル コードについては、「 すべてのルートを列挙する」を参照してください。

要件

要件
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー rtmv2.h
Library Rtm.lib
[DLL] Rtm.dll

こちらもご覧ください

RTM_NET_ADDRESS

RTM_ROUTE_INFO

RtmDeleteEnumHandle

RtmGetEnumRoutes

RtmReleaseRoutes