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 |