다음을 통해 공유


EVT_SUBSCRIBE_CALLBACK 콜백 함수(winevt.h)

EvtSubscribe 함수를 호출하여 쿼리와 일치하는 이벤트를 수신하는 경우 이 콜백을 구현합니다. 서비스는 쿼리 조건과 일치하는 이벤트가 발생할 때 콜백을 호출합니다.

구문

EVT_SUBSCRIBE_CALLBACK EvtSubscribeCallback;

DWORD EvtSubscribeCallback(
  EVT_SUBSCRIBE_NOTIFY_ACTION Action,
  PVOID UserContext,
  EVT_HANDLE Event
)
{...}

매개 변수

Action

Event 매개 변수에 이벤트 또는 오류 코드가 포함되어 있는지 여부를 확인합니다. 가능한 알림 작업 값은 EVT_SUBSCRIBE_NOTIFY_ACTION 열거형을 참조하세요.

UserContext

구독자가 EvtSubscribe 함수에 전달한 컨텍스트입니다.

Event

이벤트에 대한 핸들입니다. 이벤트 핸들은 콜백 함수 기간 동안만 유효합니다. 이벤트 핸들을 사용하는 이벤트 로그 함수(예: EvtRender 또는 EvtFormatMessage)에서 이 핸들을 사용할 수 있습니다.

EvtClose를 호출하여 이 핸들을 닫지 마세요. 서비스는 콜백이 반환될 때 핸들을 닫습니다.

Action 매개 변수가 EvtSubscribeActionError이면 Event를 DWORD로 캐스팅하여 Win32 오류 코드에 액세스합니다.

반환 값

서비스는 반환하는 반환 코드를 무시합니다.

설명

이 콜백은 다른 이벤트가 콜백에 전달되지 않도록 차단하므로 구현을 가능한 한 짧게 유지합니다.

구독을 설정하는 동안 서비스에서 오류가 발생하면 콜백에 오류가 발생했다는 알림이 표시되지 않습니다.

EvtSubscribeFlags 매개 변수에 EvtSubscribeStrict가 포함된 경우 이벤트 레코드가 누락되면 콜백에 알림이 표시됩니다. 이 경우 Event 값은 ERROR_EVT_QUERY_RESULT_STALE.

구독을 취소하려면 EvtSubscribe 함수가 반환하는 구독 핸들을 닫아야 합니다.

예제

EVT_SUBSCRIBE_CALLBACK 콜백 함수를 구현하는 예제는 이벤트 구독을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winevt.h

추가 정보

EvtSubscribe