RtmGetLessSpecificDestination 関数 (rtmv2.h)
RtmGetLessSpecificDestination 関数は、宛先プレフィックスが指定された次に最適な (最長) プレフィックスを持つ宛先をルーティング テーブルで検索します。 要求された宛先情報が返されます。
構文
DWORD RtmGetLessSpecificDestination(
[in] RTM_ENTITY_HANDLE RtmRegHandle,
[in] RTM_DEST_HANDLE DestHandle,
[in] ULONG ProtocolId,
[in] RTM_VIEW_SET TargetViews,
[out] PRTM_DEST_INFO DestInfo
);
パラメーター
[in] RtmRegHandle
RtmRegisterEntity の以前の呼び出しから取得したクライアントを処理します。
[in] DestHandle
宛先へのハンドル。
[in] ProtocolId
プロトコル識別子を指定します。 ProtocolID は検索条件の一部ではありません。 ルーティング テーブル マネージャーは、この識別子を使用して、返すルート情報を決定します。 たとえば、クライアントが RIP プロトコル識別子を指定した場合、非 RIP ルートが宛先への最適なルートである場合でも、最適な RIP ルートが返されます。
RTM_BEST_PROTOCOLを指定して、所有するプロトコルに関係なくルートを返します。 RTM_THIS_PROTOCOLを指定して、呼び出し元のプロトコルに最適なルートを返します。
[in] TargetViews
情報を返すビューを指定します。 クライアントがRTM_VIEW_MASK_ANYを指定した場合は、すべてのビューから宛先情報が返されます。ただし、ビュー固有の情報は返されません。
[out] DestInfo
入力時、 DestInfo は RTM_DEST_INFO 構造体へのポインターです。
出力時に、 DestInfo に要求された宛先情報が入力されます。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
値 | 説明 |
---|---|
|
パラメーターに正しくない情報が含まれています。 |
|
次に最適な宛先が見つかりません。 |
解説
DestInfo パラメーターは、可変サイズのRTM_DEST_INFO構造体です。 クライアントが TargetViews を使用して複数のビューを指定した場合、ビューごとに DestInfo のサイズが大きくなります。 RTM_SIZE_OF_DEST_INFO マクロを使用して、この関数を呼び出す前に DestInfo 構造体に割り当てるメモリの量を確認します。 RTM_SIZE_OF_DEST_INFOするパラメーターとして TargetViews に指定された値を使用します。
RtmGetLessSpecificDestination 関数は、RtmGetMostSpecificDestination の呼び出しの後に使用され、宛先の次に最適な一致を返します。 この呼び出しは、 RtmGetLessSpecificDestination を以前に呼び出した後も使用され、次に続くより具体的でない一致を返します。 クライアントは、この関数を使用して、宛先のプレフィックス ツリーを "ウォークアップ" できます。
この呼び出しは、RtmGetDestInfo や RtmGetChangedDests などのRTM_DEST_INFO構造体を返す関数の呼び出しの後にも使用されます。
RtmGetLessSpecificDestination 関数は、既定のルート (存在する場合) に達するまで一致を返します。 既定のルートが見つかると、 RtmGetLessSpecificDestination はERROR_NOT_FOUNDを返します。
RtmGetLessSpecificDestination 関数と RtmGetMostSpecificDestination 関数の一般的な用途の 1 つは、一致する各宛先を取得することです。
この関数を使用するサンプル コードについては、「 プレフィックス ツリーを使用してルートを検索する」を参照してください。
要件
サポートされている最小のクライアント | サポートなし |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | rtmv2.h |
Library | Rtm.lib |
[DLL] | Rtm.dll |