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 回调方法的已加载扩展。 它传递给扩展的值取决于 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 (包括 Dbgeng.h) |