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)