次の方法で共有


RtmRegisterEntity 関数 (rtmv2.h)

RtmRegisterEntity 関数は、特定のアドレス ファミリのルーティング テーブル マネージャーのインスタンスにクライアントを登録します。 ルーティング テーブル マネージャーは、登録ハンドルとインスタンスのプロファイルを返します。 プロファイルには、他の関数を呼び出すときに使用される値の一覧が含まれています。 値には、1 回の呼び出しによってバッファーに返される宛先の最大数が含まれます。

登録は、クライアントが最初に実行する必要があるアクションです。

構文

DWORD RtmRegisterEntity(
  [in]  PRTM_ENTITY_INFO           RtmEntityInfo,
  [in]  PRTM_ENTITY_EXPORT_METHODS ExportMethods,
  [in]  RTM_EVENT_CALLBACK         EventCallback,
  [in]  BOOL                       ReserveOpaquePointer,
  [out] PRTM_REGN_PROFILE          RtmRegProfile,
  [out] PRTM_ENTITY_HANDLE         RtmRegHandle
);

パラメーター

[in] RtmEntityInfo

RTM_ENTITY_INFO構造体へのポインター。 この構造体には、ルーティング テーブル マネージャーインスタンスや登録に使用するアドレス ファミリなど、クライアントをルーティング テーブル マネージャーに識別する情報が含まれます。

[in] ExportMethods

クライアントによってエクスポートされたメソッドの一覧を含む RTM_ENTITY_EXPORT_METHODS 構造体へのポインター。 このパラメーターは省略可能であり、呼び出し元のクライアントにエクスポートするメソッドがない場合は NULL に設定できます。

[in] EventCallback

ルーティング テーブル マネージャーがクライアントにイベントを通知するために使用するコールバックを指定する RTM_EVENT_CALLBACK 構造体。 イベントは、クライアントが登録と登録解除を行うとき、ルートの有効期限が切れたとき、および宛先への最適なルートへの変更が発生したときです。 クライアントが RtmRegisterForChangeNotification を呼び出したときに指定された変更のみ。

[in] ReserveOpaquePointer

プロトコルのこのインスタンスの各宛先に不透明なポインターを予約するかどうかを指定します。 各宛先に不透明なポインターを予約するには 、TRUE を 指定します。 このアクションをスキップするには 、FALSE を指定します 。 これらの不透明なポインターを使用して、各宛先のプライベートなプロトコル固有のコンテキストを指すことができます。

[out] RtmRegProfile

入力では、 RtmRegProfileRTM_REGN_PROFILE 構造体へのポインターです。

出力時に、 RtmRegProfile に要求された登録プロファイル構造が入力されます。 クライアントは、他の関数呼び出しで返される情報を使用する必要があります (返される情報には、等コストの次ホップの数と列挙関数呼び出しによって返されるアイテムの最大数が含まれます)。

[out] RtmRegHandle

クライアントの登録ハンドルを受け取ります。 このハンドルは、ルーティング テーブル マネージャーに対する後続のすべての呼び出しで使用する必要があります。

戻り値

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

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

説明
ERROR_ALREADY_EXISTS
指定されたクライアントは、ルーティング テーブル マネージャーに既に登録されています。
ERROR_BAD_CONFIGURATION
ルーティング テーブル マネージャーのレジストリ情報が壊れています。
ERROR_FILE_NOT_FOUND
ルーティング テーブル マネージャーのレジストリ情報が見つかりませんでした。
ERROR_INVALID_DATA
パラメーターに正しくない情報が含まれています。
ERROR_INVALID_PARAMETER
パラメーターに正しくない情報が含まれています。
ERROR_NO_SYSTEM_RESOURCES
この操作を完了するのに十分なシステム リソースがありません。
ERROR_NOT_ENOUGH_MEMORY
この操作を完了するのに十分なメモリがありません。

解説

この関数を使用するサンプル コードについては、「 ルーティング テーブル マネージャーに登録する」を参照してください。

要件

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

関連項目

RTM_ENTITY_EXPORT_METHODS

RTM_ENTITY_INFO

RTM_EVENT_CALLBACK

RTM_REGN_PROFILE

RtmDeregisterEntity

RtmGetRegisteredEntities

RtmReleaseEntities