共用方式為


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)