IDebugRegisters2::SetValues2 方法 (dbgeng.h)

SetValues2 方法设置多个目标寄存器的值。

语法

HRESULT SetValues2(
  [in]           ULONG        Source,
  [in]           ULONG        Count,
  [in, optional] PULONG       Indices,
  [in]           ULONG        Start,
  [in]           PDEBUG_VALUE Values
);

参数

[in] Source

指定要查询的寄存器源。

下表列出了可能的值。

注册源
DEBUG_REGSRC_DEBUGGEE 从目标提取寄存器信息。
DEBUG_REGSRC_EXPLICIT 从当前显式寄存器 上下文中提取寄存器信息。
DEBUG_REGSRC_FRAME 从当前作用域的寄存器上下文中提取寄存器信息。
注意 堆栈展开不保证寄存器上下文的准确更新,因此范围帧的寄存器上下文可能并非在所有情况下都准确。
 

[in] Count

指定要为其设置值的寄存器数。

[in, optional] Indices

指定一个数组,该数组包含要为其设置值的寄存器的索引。 此数组中的元素数为 Count。 如果 索引NULL,则改用 Start

[in] Start

如果 索引NULL,则将从此索引开始连续设置寄存器。 否则会忽略该设置。

[in] Values

一个数组,其中包含要设置寄存器的值。 此数组包含的元素数为 Count。 有关此参数类型的说明,请参阅 DEBUG_VALUE

返回值

此列表不包含可能发生的所有错误。 有关可能错误的列表,请参阅 HRESULT 值

返回代码 说明
S_OK
方法成功。

注解

引擎会尽力将 Values 中的值强制转换为寄存器的类型;此转换与 CoerceValue 执行的转换相同。 如果值大于寄存器可以容纳的值,则删除最小有效位。 如有必要,还将执行浮点转换和整数转换。

如果未S_OK返回值,则某些寄存器可能仍已设置。

更改子注册时,包含子注册的寄存器也会更改。

方法 SetValues 执行与此方法相同的任务,但始终使用目标作为寄存器源。

有关 IDebugRegisters 接口和其他与寄存器相关的方法的概述,请参阅 Registers

要求

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

另请参阅

IDebugRegisters2

SetValue

SetValues