IDebugEventCallbacksWide::ChangeDebuggeeState 方法 (dbgeng.h)
ChangeDebuggeeState 回调方法在引擎发出或检测目标更改时调用。
语法
HRESULT ChangeDebuggeeState(
[in] ULONG Flags,
[in] ULONG64 Argument
);
参数
[in] Flags
指定对目标所做的更改的类型。 标志 可能采用以下值之一:
价值 | 描述 |
---|---|
DEBUG_CDS_ALL | 已发生目标中的常规更改。 例如,目标已执行,或者引擎刚刚附加到目标。 |
DEBUG_CDS_REGISTERS | 目标的处理器寄存器已更改。 |
DEBUG_CDS_DATA | 目标的数据空间已更改。 |
[in] Argument
提供有关目标中更改的其他信息。 参数 的值的解释取决于 标志的值:
- DEBUG_CDS_ALL
- 参数 的值为零。
- DEBUG_CDS_REGISTERS
- 如果单个寄存器已更改,则 Argument 的值是该寄存器的索引。 否则,参数 的值DEBUG_ANY_ID。
- DEBUG_CDS_DATA
-
参数 的值指定更改了哪些数据空间。 下表包含 Argument的可能值。
价值 描述 DEBUG_DATA_SPACE_VIRTUAL 目标的虚拟内存已更改。 DEBUG_DATA_SPACE_PHYSICAL 目标的物理内存已更改。 DEBUG_DATA_SPACE_CONTROL 目标的控制内存已更改。 DEBUG_DATA_SPACE_IO 目标的 I/O 端口已接收输入或输出。 DEBUG_DATA_SPACE_MSR 目标 Model-Specific 寄存器(MSR)已更改。 DEBUG_DATA_SPACE_BUS_DATA 目标总线内存已更改。
返回值
引擎忽略返回值,除非它指示远程过程调用错误;在这种情况下,将禁用此 IDebugEventCallbacksWide 对象的客户端。
言论
仅当 IDebugEventCallbacksWide::GetInterestMask返回的掩码中设置DEBUG_EVENT_CHANGE_DEBUGGEE_STATE标志时,引擎才会 调用 changeDebuggeeState。
有关处理事件的详细信息,请参阅 监视事件。 有关管理目标内存(包括寄存器和数据空间)的信息,请参阅 内存访问。 有关目标的虚拟和物理内存的信息,请参阅 虚拟和物理内存。 有关目标控制内存、I/O 端口、MSR 和总线内存的信息,请参阅 其他数据空间。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h) |