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
列挙体の作成時に使用するビューのセットを指定します。 次のフラグが使用されます。
定数 | 説明 |
---|---|
|
すべてのビューから変換先を返します。 これが既定値です。 |
|
ユニキャスト ビューから宛先を返します。 |
|
マルチキャスト ビューから宛先を返します。 |
[in] EnumFlags
列挙に含めるルートを指定します。 2 セットのフラグが使用されます。各セットから 1 つのフラグ (RTM_ENUM_ALL_ROUTESやRTM_ENUM_STARTなど) を使用します。
定数 | 説明 |
---|---|
|
すべてのルートを返します。 |
|
クライアントが所有するルートのみを返します。 |
[in] StartDest
列挙体の開始アドレスを含む RTM_NET_ADDRESS 構造体へのポインター。 EnumFlags にRTM_ENUM_STARTが含まれている場合、このパラメーターは無視されます。
[in] MatchingFlags
一致するルートの要素を指定します。 特に明記されていない限り、 CriteriaRoute と CriteriaInterface で指定された条件に一致するルートのみが返されます。 次のフラグが使用されます。
[in] CriteriaRoute
列挙するルートを指定します。 このパラメーターは省略可能であり、MatchingFlags にRTM_MATCH_INTERFACEまたはRTM_MATCH_NONEが含まれている場合は NULL に設定できます。
[in] CriteriaInterface
どのインターフェイス ルートを配置するかを指定する ULONG へのポインター。 MatchingFlags にRTM_MATCH_INTERFACEが含まれている場合を除き、このパラメーターは無視されます。
[out] RtmEnumHandle
入力時、 RtmEnumHandle は NULL へのポインターです。
出力時に、 RtmEnumHandle は列挙へのハンドルへのポインターを受け取ります。 RtmGetEnumRoutes、RtmReleaseRoutes、RtmDeleteEnumHandle に対する後続のすべての呼び出しで、このハンドルを使用します。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
値 | 意味 |
---|---|
|
パラメーターに正しくない情報が含まれています。 |
|
この操作を完了するのに十分なメモリがありません。 |
|
指定されたビューの 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 |