(为代码当前正在其中执行的平台)获取由给定位掩码指定的每个寄存器的值。
HRESULT GetRegisters (
[in] ULONG32 maskCount,
[in, size_is(maskCount)] BYTE mask[],
[in] ULONG32 regCount,
[out, size_is(regCount)] CORDB_REGISTER regBuffer[]
);
参数
maskCount
[in] mask 数组的大小(以字节为单位)。mask
[in] 一个由字节组成的数组,其中的每个位都对应于一个寄存器。 如果位为 1,则将检索对应寄存器的值。regCount
[in] 要检索的寄存器值的数目。regBuffer
[out] 一个由 CORDB_REGISTER 对象构成的数组,其中的每个对象都会接收一个寄存器的值。
备注
GetRegisters 方法从掩码指定的寄存器中返回一个由值组成的数组。 该数组不包含其掩码位未设置的寄存器的值。 因此,regBuffer 数组的大小必须与掩码中 1 的数目相等。 如果 regCount 的值对于掩码指示的寄存器数而言太小,则将从集合中截断编号较高的寄存器的值。 如果 regCount 太大,则未使用的 regBuffer 元素将保持不变。
如果掩码指定的寄存器不可用,则将为该寄存器返回一个不确定值。
对于具有 64 个以上寄存器的平台,ICorDebugRegisterSet2::GetRegisters 方法必不可少。 例如,IA64 具有 128 个通用寄存器和 128 个浮点寄存器,因此位掩码中需要有超过 64 个位。
如果没有 64 个以上的寄存器(诸如 x86 等平台上就是如此),GetRegisters 方法实际上只是将 mask 字节数组中的字节转换为 ULONG64,然后调用采用 ULONG64 掩码的 ICorDebugRegisterSet::GetRegisters 方法。
要求
**平台:**请参见 .NET Framework 系统要求。
头文件: CorDebug.idl、CorDebug.h
**库:**CorGuids.lib
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0