IDebugEventCallbacksWide::SessionStatus 方法 (dbgeng.h)

当调试器会话发生更改时,引擎会调用 SessionStatus 回调方法。

语法

HRESULT SessionStatus(
  [in] ULONG Status
);

参数

[in] Status

指定调试器会话的新状态。 下表描述了可能的值。

价值 描述
DEBUG_SESSION_ACTIVE 调试器会话已启动。
DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE 会话通过向 EndSession发送DEBUG_END_ACTIVE_TERMINATE结束。
DEBUG_SESSION_END_SESSION_ACTIVE_DETACH 会话是通过向 EndSession 发送DEBUG_END_ACTIVE_DETACH结束的。
DEBUG_SESSION_END_SESSION_PASSIVE 会话通过向 EndSession发送DEBUG_END_PASSIVE结束。
DEBUG_SESSION_END 目标已运行至完成状态,结束会话。
DEBUG_SESSION_REBOOT 目标计算机重新启动,结束会话。
DEBUG_SESSION_HIBERNATE 目标计算机进入休眠状态,结束会话。
DEBUG_SESSION_FAILURE 引擎无法继续会话。

返回值

引擎忽略此方法的返回值。

言论

只有在 IDebugEventCallbacksWide::GetInterestMask返回的掩码中设置了DEBUG_EVENT_SESSION_STATUS标志时,引擎才会调用此方法。

引擎通知会话状态更改的所有事件回调后,它还会通知任何加载的 扩展 导出 DebugExtensionNotify 回调方法。 传递给扩展的值取决于 状态的值。 如果 状态 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 (包括 Dbgeng.h)