RtmCreateDestEnum 関数 (rtmv2.h)
RtmCreateDestEnum 関数は、ルーティング テーブル内の宛先の列挙を開始します。 クライアントは、1 つ以上のビューまたはすべてのビューの宛先を列挙できます。
構文
DWORD RtmCreateDestEnum(
[in] RTM_ENTITY_HANDLE RtmRegHandle,
[in] RTM_VIEW_SET TargetViews,
[in] RTM_ENUM_FLAGS EnumFlags,
[in] PRTM_NET_ADDRESS NetAddress,
[in] ULONG ProtocolId,
[out] PRTM_ENUM_HANDLE RtmEnumHandle
);
パラメーター
[in] RtmRegHandle
RtmRegisterEntity の以前の呼び出しから取得したクライアントへのハンドル。
[in] TargetViews
列挙体を作成するときに使用するビューのセットを指定します。 次のフラグが使用されます。
定数 | 説明 |
---|---|
|
すべてのビューから変換先を返します。 これが既定値です。 |
|
ユニキャスト ビューから宛先を返します。 |
|
マルチキャスト ビューから宛先を返します。 |
[in] EnumFlags
列挙に含める宛先を指定します。 2 セットのフラグが使用されます。各セットから 1 つのフラグを使用します (たとえば、RTM_ENUM_ALL_DESTSとRTM_ENUM_STARTを使用します)。
定数 | 説明 |
---|---|
|
すべての宛先を返します。 |
|
クライアントが、指定されたビューのいずれかで宛先への最適なルートを所有する宛先を返します。 |
[in] NetAddress
列挙体の開始アドレスを含む RTM_NET_ADDRESS 構造体へのポインター。 EnumFlags にRTM_ENUM_STARTが含まれている場合は NULL を指定します。
[in] ProtocolId
RtmGetEnumDests 関数によって返される最適なルート情報を決定するために使用されるプロトコル識別子を指定します。 ProtocolID は検索条件の一部ではありません。 ルーティング テーブル マネージャーは、この識別子を使用して、返すルート情報を決定します (たとえば、クライアントが RIP プロトコル識別子を指定した場合、非 RIP ルートが宛先への最適なルートである場合でも、最適な RIP ルートが返されます)。
ルートを所有するプロトコルに関係なく、ルートを返すRTM_BEST_PROTOCOLを指定します。 呼び出し元のプロトコルに最適なルートを返すには、RTM_THIS_PROTOCOLを指定します。
[out] RtmEnumHandle
入力では、 RtmEnumHandle は NULL へのポインターです。
出力時に、 RtmEnumHandle は列挙へのハンドルへのポインターを受け取ります。 RtmGetEnumDests、RtmReleaseDests、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 |