IDebugEventCallbacks::ChangeEngineState 方法 (dbgeng.h)

当引擎的状态发生更改时,ChangeEngineState 回调方法调用。

语法

HRESULT ChangeEngineState(
  [in] ULONG   Flags,
  [in] ULONG64 Argument
);

参数

[in] Flags

指定一个位集,指示引擎状态中发生的更改的类型。 可以设置以下位标志:

价值 描述
DEBUG_CES_CURRENT_THREAD 当前线程已更改,这意味着当前目标和当前进程也可能已更改。
DEBUG_CES_EFFECTIVE_PROCESSOR 有效处理器已更改。
DEBUG_CES_BREAKPOINTS 一个或多个 断点 已更改。
DEBUG_CES_CODE_LEVEL 代码解释级别已更改。
DEBUG_CES_EXECUTION_STATUS 执行状态已更改。
DEBUG_CES_ENGINE_OPTIONS 引擎选项已更改。
DEBUG_CES_LOG_FILE 日志文件已打开或关闭。
DEBUG_CES_RADIX 默认弧度已更改。
DEBUG_CES_EVENT_FILTERS 事件筛选器已更改。
DEBUG_CES_PROCESS_OPTIONS 当前进程的进程选项已更改。
DEBUG_CES_EXTENSIONS 扩展 DLL 已加载或卸载。 (有关详细信息,请参阅 加载调试器扩展 DLL。)
DEBUG_CES_SYSTEMS 已添加或删除目标。
DEBUG_CES_ASSEMBLY_OPTIONS 程序集选项已更改。
DEBUG_CES_EXPRESSION_SYNTAX 默认表达式语法已更改。
DEBUG_CES_TEXT_REPLACEMENTS 文本替换已更改。

[in] Argument

提供有关更改引擎状态的其他信息。 如果在 Flags 参数中设置了多个位标志,则不使用 Argument 参数。 否则,参数 的值的解释取决于 标志的值:

DEBUG_CES_CURRENT_THREAD

参数 的值是当前引擎线程 ID,或者,如果没有当前线程DEBUG_ANY_ID。 有关详细信息,请参阅 线程和进程

DEBUG_CES_EFFECTIVE_PROCESSOR

参数 的值是有效处理器的类型。

DEBUG_CES_BREAKPOINTS

参数 的值是已更改的断点的断点 ID;如果更改了多个断点,则为DEBUG_ANY_ID。 有关详细信息,请参阅 断点

DEBUG_CES_CODE_LEVEL

参数 的值是代码解释级别。

DEBUG_CES_EXECUTION_STATUS

参数 的值是执行状态(如 DEBUG_STATUS_XXX 主题中所述),可能与位标志DEBUG_STATUS_INSIDE_WAIT结合使用。 WaitForEvent 调用挂起时设置DEBUG_STATUS_INSIDE_WAIT。 有关详细信息,请参阅 调试会话和执行模型

DEBUG_CES_ENGINE_OPTIONS

参数 的值是引擎选项。

DEBUG_CES_LOG_FILE

如果打开日志文件,则 参数 的值 TRUE;如果日志文件已关闭,FALSE

DEBUG_CES_RADIX

参数 的值是默认的弧度。

DEBUG_CES_EVENT_FILTERS

参数 的值是已更改的事件筛选器的索引;如果多个事件筛选器已更改,则为DEBUG_ANY_ID。

DEBUG_CES_PROCESS_OPTIONS

参数 的值是当前进程的进程选项。

DEBUG_CES_EXTENSIONS

参数 的值为零。

DEBUG_CES_SYSTEMS

参数 的值是添加的目标的目标 ID;如果删除了目标,则为DEBUG_ANY_ID。

DEBUG_CES_ASSEMBLE_OPTIONS

参数 的值是程序集选项。

DEBUG_CES_EXPRESSION_SYNTAX

参数 的值是默认表达式语法。

DEBUG_CES_TEXT_REPLACEMENTS

参数 的值是DEBUG_ANY_ID。

返回值

引擎忽略返回值,除非它指示远程过程调用错误;在这种情况下,将禁用此 IDebugEventCallbacks 对象的客户端。

言论

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

有关处理事件的详细信息,请参阅 监视事件

要求

要求 价值
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h)