다음을 통해 공유


_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

라우팅 테이블 관리자가 클라이언트에 알리는 이벤트를 지정합니다. 다음 값이 사용됩니다.

의미
RTM_ENTITY_REGISTERED
클라이언트가 라우팅 테이블 관리자에 방금 등록했습니다.
RTM_ENTITY_DEREGISTERED
클라이언트가 등록 취소되었습니다.
RTM_ROUTE_EXPIRED
경로 시간이 초과되었습니다.
RTM_CHANGE_NOTIFICATION
변경 알림이 전송되었습니다.

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

추가 정보

RTM_EVENT_TYPE

RtmRegisterEntity