IDebugEventCallbacks::SessionStatus 메서드(dbgeng.h)
SessionStatus 콜백 메서드는 디버거 세션에서 변경이 발생할 때 엔진에 의해 호출됩니다.
HRESULT SessionStatus(
[in] ULONG Status
);
[in] Status
디버거 세션의 새 상태를 지정합니다. 다음 표에서는 가능한 값을 설명합니다.
값 | 묘사 |
---|---|
DEBUG_SESSION_ACTIVE | 디버거 세션이 시작되었습니다. |
DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE | 세션은 EndSessionDEBUG_END_ACTIVE_TERMINATE 전송하여 종료되었습니다. |
DEBUG_SESSION_END_SESSION_ACTIVE_DETACH | 세션은 EndSessionDEBUG_END_ACTIVE_DETACH 전송하여 종료되었습니다. |
DEBUG_SESSION_END_SESSION_PASSIVE | 세션은 EndSessionDEBUG_END_PASSIVE 전송하여 종료되었습니다. |
DEBUG_SESSION_END | 대상이 완료될 때 실행하여 세션이 종료되었습니다. |
DEBUG_SESSION_REBOOT | 대상 컴퓨터가 다시 부팅되어 세션이 종료되었습니다. |
DEBUG_SESSION_HIBERNATE | 대상 컴퓨터가 최대 절전 모드로 전환하여 세션이 종료되었습니다. |
DEBUG_SESSION_FAILURE | 엔진에서 세션을 계속할 수 없습니다. |
이 메서드의 반환 값은 엔진에서 무시됩니다.
이 메서드는 DEBUG_EVENT_SESSION_STATUS 플래그가 IDebugEventCallbacks::GetInterestMask반환된 마스크에 설정된 경우에만 엔진에서 호출됩니다.
엔진이 세션 상태의 변경 내용에 대한 모든 이벤트 콜백을 통보한 후에는 DebugExtensionNotify 콜백 메서드를 내보내는 로드된 확장 알립니다. 확장에 전달하는 값은 상태값에 따라 달라집니다. 상태 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 포함) |