IDebugEventCallbacks::SessionStatus 方法 (dbgeng.h)
當調試程式會話發生變更時,引擎會呼叫 SessionStatus 回呼方法。
語法
HRESULT SessionStatus(
[in] ULONG Status
);
參數
[in] Status
指定調試程式會話的新狀態。 下表說明可能出現的值。
值 | Description |
---|---|
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 | 引擎無法繼續會話。 |
傳回值
引擎會忽略這個方法的傳回值。
備註
只有在 iDebugEventCallbacks::GetInterestMask 所傳回的遮罩中設定DEBUG_EVENT_SESSION_STATUS旗標時,引擎才會呼叫此方法。
引擎在通知會話狀態變更的所有事件回呼之後,也會通知任何載入的 延伸 模組,以導出 DebugExtensionNotify 回呼方法。 傳遞給延伸模組的值取決於 Status 的值。 如果 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) |