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) |