IDebugEventCallbacksWide::SessionStatus 方法 (dbgeng.h)
當調試程式會話發生變更時,引擎會呼叫 SessionStatus 回呼方法。
語法
HRESULT SessionStatus(
[in] ULONG Status
);
參數
[in] Status
指定調試程式會話的新狀態。 下表描述可能的值。
價值 | 描述 |
---|---|
DEBUG_SESSION_ACTIVE | 調試程式會話已啟動。 |
DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE | 工作階段已結束,方法是將DEBUG_END_ACTIVE_TERMINATE傳送至 EndSession。 |
DEBUG_SESSION_END_SESSION_ACTIVE_DETACH | 工作階段已結束,方法是將DEBUG_END_ACTIVE_DETACH傳送至 EndSession。 |
DEBUG_SESSION_END_SESSION_PASSIVE | 工作階段已結束,方法是將DEBUG_END_PASSIVE傳送至 endSession 。 |
DEBUG_SESSION_END | 目標已執行到完成,結束會話。 |
DEBUG_SESSION_REBOOT | 目標計算機重新啟動,結束會話。 |
DEBUG_SESSION_HIBERNATE | 目標計算機進入休眠狀態,結束會話。 |
DEBUG_SESSION_FAILURE | 引擎無法繼續會話。 |
傳回值
引擎會忽略此方法的傳回值。
言論
只有在 IDebugEventCallbacksWide::GetInterestMask傳回的遮罩中設定DEBUG_EVENT_SESSION_STATUS旗標時,引擎才會呼叫這個方法。
引擎在通知會話狀態變更的所有事件回呼之後,也會通知任何載入的 擴充功能, 導出 DebugExtensionNotify 回呼方法。 傳遞給延伸模組的值取決於 Status的值。 如果 狀態 是DEBUG_SESSION_ACTIVE,則會通過DEBUG_SESSION_ACTIVE;否則,它會傳遞DEBUG_SESSION_INACTIVE。
在DEBUG_SESSION_ACTIVE案例中,引擎會透過目標狀態變更通知遵循調試程式會話變更通知,方法是在事件回呼上呼叫 IDebugEventCallbacksWide::ChangeDebuggeeState,並在 Flags 參數中傳遞DEBUG_CDS_ALL。 在其他所有情況下,引擎會在此通知前面加上引擎狀態變更通知,方法是在事件回呼上呼叫 IDebugEventCallbacksWide::ChangeEngineState,並在 Flags 參數中傳遞DEBUG_CES_EXECUTION_STATUS。
如需處理事件的詳細資訊,請參閱 監視事件。 如需除錯程式工作階段的相關資訊,請參閱 偵錯工作階段和執行模型。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | dbgeng.h (include Dbgeng.h) |