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 |
从当前范围的寄存器上下文中提取寄存器信息。
注意 堆栈展开不保证寄存器上下文的准确更新,因此范围帧的寄存器上下文可能并非在所有情况下都准确。
|
[in] Count
指定请求其值的寄存器数。
[in, optional] Indices
指定一个数组,该数组包含要从中获取值的寄存器的索引。 此数组中的元素数为 Count。 如果 索引 为 NULL,则改用 Start 。
[in] Start
如果 Indexes 为 NULL,将从此索引开始连续读取寄存器。 否则会忽略该设置。
[out] Values
接收寄存器的值。 此数组包含的元素数为 Count。 有关此参数类型的说明 ,请参阅DEBUG_VALUE 。
返回值
此列表不包含可能发生的所有错误。 有关可能错误的列表,请参阅 HRESULT 值。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
其中一个寄存器的索引值大于目标计算机上的寄存器数。 可能已获得部分结果:无法读取的寄存器的类型DEBUG_VALUE_INVALID。 |
注解
如果未S_OK返回值,则可能仍读取某些寄存器。 如果无法访问目标,则返回类型为E_UNEXPECTED, 值 保持不变。 否则, 值 将包含部分结果,并且无法读取的寄存器的类型DEBUG_VALUE_INVALID。 在返回值E_UNEXPECTED时,可以通过在调用此方法之前将 Values 的内存设置为零来避免出现歧义。
方法 GetValues 执行与此方法相同的任务,但始终使用目标作为寄存器源。
有关 IDebugRegisters 接口和其他寄存器相关方法的概述,请参阅 Registers。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 DbgEng.h) |