IDebugEventCallbacks::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 | 引擎无法继续会话。 |
返回值
引擎会忽略此方法的返回值。
注解
只有在 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) |