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)