IDebugRegisters2::GetValues 方法 (dbgeng.h)

GetValues 方法获取多个目标寄存器的值。

语法

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

参数

[in] Count

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

[in, optional] Indices

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

[in] Start

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

[out] Values

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

返回值

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

返回代码 说明
S_OK
方法成功。
E_UNEXPECTED
无法访问目标,或者无法访问其中一个寄存器。
E_INVALIDARG
其中一个寄存器的索引值大于目标计算机上的寄存器数。 可能已获得部分结果;无法读取的寄存器的类型DEBUG_VALUE_INVALID。

注解

GetValues 获取多个目标寄存器的值。

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

若要仅接收单个寄存器的值,请改用 GetValue 方法。

GetValues2 方法执行与此方法相同的任务,但也允许指定寄存器源。

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

要求

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

另请参阅

GetValue

GetValues2

IDebugRegisters

IDebugRegisters2