다음을 통해 공유


IDebugControl3::WaitForEvent 메서드(dbgeng.h)

WaitForEvent 메서드는 디버거 엔진 애플리케이션에 침입하는 이벤트를 기다립니다.

통사론

HRESULT WaitForEvent(
  [in] ULONG Flags,
  [in] ULONG Timeout
);

매개 변수

[in] Flags

0으로 설정합니다. 현재 이 매개 변수에 사용할 수 있는 플래그가 없습니다.

[in] Timeout

이 메서드가 반환되기 전에 대기할 시간(밀리초)을 지정합니다. 시간 제한 INFINITE이면 디버거 엔진 애플리케이션에 침입하는 이벤트가 발생하거나 종료 인터럽트를 실행하기 전까지는 이 메서드가 반환되지 않습니다. 현재 세션에 라이브 커널 대상이 있는 경우 제한 시간 INFINITE로 설정해야 합니다.

반환 값

이 메서드는 다른 오류 값을 반환할 수 있으며 위의 오류 값에는 추가 의미가 있을 수 있습니다. 자세한 내용은 반환 값 참조하세요.

반환 코드 묘사
S_OK
메서드가 성공했습니다.
S_FALSE
제한 시간이 만료되었습니다.
E_PENDING
종료 인터럽트를 실행했습니다. 대상을 사용할 수 없습니다.
E_UNEXPECTED
입력에 대한 미해결 요청이 있거나 대상 중 어느 것도 이벤트를 생성할 수 없습니다.
E_FAIL
엔진이 이미 이벤트를 기다리고 있습니다.

발언

이 메서드는 디버거 세션을 시작한 스레드에서만 호출할 수 있습니다.

이벤트가 발생하면 디버거 엔진 이벤트를 처리하고 이벤트 콜백을 호출합니다. 이러한 콜백 중 하나가 이벤트가 디버거 엔진 애플리케이션에 침입해야 한다고 나타내는 경우(DEBUG_STATUS_BREAK 반환) 이 메서드가 반환됩니다. 그렇지 않으면 이벤트를 계속 대기합니다. 이벤트 필터는 이벤트가 디버거 엔진 애플리케이션에 침입해야 임을 지정할 수도 있습니다. 이벤트 필터에 대한 자세한 내용은 예외 및 이벤트 제어 참조하세요.

이 메서드는 다시 항목이 아닙니다. 호출된 후에는 반환될 때까지 클라이언트에서 다시 호출할 수 없습니다. 특히 콜백에서 실행되는 확장 및 명령을 포함하여 이벤트 콜백에서 호출할 수 없습니다.

예를 들어 모든 대상이 종료된 경우와 같이 이벤트를 생성할 수 있는 대상이 없는 경우 이 메서드는 현재 세션을 종료하고 대상을 삭제한 다음 E_UNEXPECTED 반환합니다.

상수 INFINITE는 Winbase.h에 정의됩니다.

WaitForEvent 사용하여 디버거 애플리케이션 및 대상의 실행 흐름을 제어하는 방법에 대한 자세한 내용은 디버깅 세션 및 실행 모델참조하세요. 이벤트 콜백에 대한 자세한 내용은 모니터링 이벤트참조하세요.

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 dbgeng.h(Dbgeng.h, Winbase.h 포함)

참고 항목

IDebugControl

IDebugControl2

IDebugControl3