_EVENT_CALLBACK コールバック関数 (rtmv2.h)
RTM_EVENT_CALLBACK コールバックは、指定したイベントが発生したことをクライアントに通知するためにルーティング テーブル マネージャーによって使用されます。
構文
_EVENT_CALLBACK EventCallback;
DWORD EventCallback(
RTM_ENTITY_HANDLE RtmRegHandle,
RTM_EVENT_TYPE EventType,
PVOID Context1,
PVOID Context2
)
{...}
パラメーター
RtmRegHandle
ルーティング テーブル マネージャーが通知を送信しているクライアントへのハンドル。
EventType
ルーティング テーブル マネージャーがクライアントに通知するイベントを指定します。 次の値が使用されます。
値 | 意味 |
---|---|
|
クライアントがルーティング テーブル マネージャーに登録されたばかりです。 |
|
クライアントが登録を解除したばかりです。 |
|
ルートがタイムアウトしました。 |
|
変更通知が行われました。 |
Context1
RTM_ENTITY_REGISTERED呼び出しの場合: 登録したエンティティへのハンドルが含まれます。
RTM_ENTITY_DEREGISTERED呼び出しの場合: 登録解除されたエンティティへのハンドルが含まれます。
RTM_ROUTE_EXPIRED呼び出しの場合: タイムアウトしたルートへのハンドルが含まれます。
RTM_CHANGE_NOTIFICATION呼び出しの場合: 変更通知のハンドルが含まれます。
Context2
RTM_ENTITY_REGISTERED呼び出しの場合: Context1 のハンドルによって参照されるRTM_ENTITY_INFO構造体へのポインターが含まれます。 クライアントがこの情報を保持する必要がある場合は、クライアントが割り当てた構造体にコピーする必要があります。
RTM_ENTITY_DEREGISTERED呼び出しの場合: Context1 のハンドルによって参照されるRTM_ENTITY_INFO構造体へのポインターが含まれます。 クライアントがこの情報を保持する必要がある場合は、クライアントが割り当てた構造体にコピーする必要があります。
RTM_ROUTE_EXPIRED呼び出しの場合: Context1 のハンドルによって参照されるRTM_ROUTE_INFO構造体へのポインターが含まれます。 クライアントがこの情報を保持する必要がある場合は、クライアントが割り当てた構造体にコピーする必要があります。
RTM_CHANGE_NOTIFICATION呼び出しの場合: RtmRegisterForChangeNotification の以前の呼び出しによってクライアントに渡された通知コンテキストが含まれます。
戻り値
ルーティング テーブル マネージャーがRTM_ROUTE_EXPIREDコールバックを発行し、クライアントがERROR_NOT_SUPPORTED値をルーティング テーブル マネージャーに戻すと、ルーティング テーブル マネージャーはルーティング テーブルからルートを削除します。
クライアントによって返されるその他のエラーはすべて無視されます。
注釈
クライアントが変更通知に登録されると、ルーティング テーブル マネージャーはこのコールバックを使用して、クライアントにイベントに関する情報を保持します。
クライアントがRTM_ENTITY_REGISTEREDイベントまたはRTM_ENTITY_DEREGISTERED イベントの RTM_EVENT_CALLBACK を受け取った場合、クライアントは、このコールバックのコンテキストで RtmRegisterEntity、 RtmDeregisterEntity、または RtmGetRegisteredEntities を呼び出してはなりません。
クライアントが RTM_CHANGE_NOTIFICATION イベントの RTM_EVENT_CALLBACK を受け取った場合、クライアントはこのコールバックのコンテキストで RtmRegisterForChangeNotification を呼び出してはなりません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートなし |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | rtmv2.h |