共用方式為


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)