IDebugEventCallbacks::SessionStatus 메서드(dbgeng.h)

SessionStatus 콜백 메서드는 디버거 세션에서 변경이 발생할 때 엔진에서 호출됩니다.

구문

HRESULT SessionStatus(
  [in] ULONG Status
);

매개 변수

[in] Status

디버거 세션의 새 상태 지정합니다. 다음 표에서는 사용 가능한 값을 설명합니다.

Description
DEBUG_SESSION_ACTIVE 디버거 세션이 시작되었습니다.
DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE 세션은 endSession에 DEBUG_END_ACTIVE_TERMINATE 전송하여 종료되었습니다.
DEBUG_SESSION_END_SESSION_ACTIVE_DETACH 세션은 endSession에 DEBUG_END_ACTIVE_DETACH 전송하여 종료되었습니다.
DEBUG_SESSION_END_SESSION_PASSIVE 세션은 endSession에 DEBUG_END_PASSIVE 전송하여 종료되었습니다.
DEBUG_SESSION_END 대상이 완료될 때 실행되어 세션이 종료되었습니다.
DEBUG_SESSION_REBOOT 대상 컴퓨터가 다시 부팅되어 세션이 종료되었습니다.
DEBUG_SESSION_HIBERNATE 대상 컴퓨터가 최대 절전 모드로 전환되어 세션이 종료되었습니다.
DEBUG_SESSION_FAILURE 엔진이 세션을 계속할 수 없습니다.

반환 값

이 메서드의 반환 값은 엔진에서 무시됩니다.

설명

이 메서드는 IDebugEventCallbacks::GetInterestMask에서 반환된 마스크에 DEBUG_EVENT_SESSION_STATUS 플래그가 설정된 경우에만 엔진에서 호출됩니다.

엔진이 세션 상태 변경 내용에 대한 모든 이벤트 콜백을 통보한 후에는 DebugExtensionNotify 콜백 메서드를 내보내는 로드된 확장에도 알립니다. 확장에 전달하는 값은 Status 값에 따라 달라집니다. 상태가 DEBUG_SESSION_ACTIVE 경우 DEBUG_SESSION_ACTIVE 전달됩니다. 그렇지 않으면 DEBUG_SESSION_INACTIVE 전달합니다.

DEBUG_SESSION_ACTIVE 경우 엔진은 이벤트 콜백에서 IDebugEventCallbacks::ChangeDebuggeeState를 호출하고 Flags 매개 변수에서 DEBUG_CDS_ALL 전달하여 대상 상태 변경 알림과 함께 디버거 세션 변경 알림을 따릅니다. 다른 모든 경우에서 엔진은 이벤트 콜 백에서 IDebugEventCallbacks::ChangeEngineState를 호출하고 Flags 매개 변수에서 DEBUG_CES_EXECUTION_STATUS 전달하여 엔진 상태 변경 알림으로 이 알림 앞에 섰습니다.

이벤트 처리에 대한 자세한 내용은 이벤트 모니터링을 참조하세요. 디버거 세션에 대한 자세한 내용은 디버깅 세션 및 실행 모델을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 dbgeng.h(Dbgeng.h 포함)