IDebugRegisters2::GetValues2 方法 (dbgeng.h)

GetValues2 方法提取目标 寄存器的几个值。

语法

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

参数

[in] Source

指定要查询的注册源。

下表列出了可能的值。

价值 注册源
DEBUG_REGSRC_DEBUGGEE 从目标中提取注册信息。
DEBUG_REGSRC_EXPLICIT 从当前显式 寄存器上下文提取寄存器信息。
DEBUG_REGSRC_FRAME 从当前范围的注册上下文中提取注册信息。
注意 Stack 展开不能保证寄存器上下文的准确更新,因此范围框架的寄存器上下文在所有情况下都可能不准确。
 

[in] Count

指定请求其值的寄存器数。

[in, optional] Indices

指定一个数组,其中包含要从中获取值的寄存器的索引。 此数组中的元素数 计数。 如果 索引NULL,则改用 Start

[in] Start

如果 索引NULL,则从此索引开始连续读取寄存器。 否则,将忽略它。

[out] Values

接收寄存器的值。 此数组保存的元素数 计数。 有关此参数类型的说明,请参阅 DEBUG_VALUE

返回值

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

返回代码 描述
S_OK
该方法成功。
E_INVALIDARG
其中一个寄存器的索引值大于目标计算机上的寄存器数。 可能已获取部分结果;无法读取的寄存器将具有类型DEBUG_VALUE_INVALID。

言论

如果未S_OK返回值,则某些寄存器仍可能已读取。 如果无法访问目标,则返回类型E_UNEXPECTED,并且 保持不变。 否则, 将包含部分结果,无法读取的寄存器将具有类型DEBUG_VALUE_INVALID。 在返回值E_UNEXPECTED的情况下,可以通过在调用此方法之前将 值内存 设置为零来避免歧义。

GetValues 的方法执行与此方法相同的任务,但始终使用目标作为注册源。

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

要求

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

另请参阅

GetValue

GetValues

IDebugRegisters2