ICorDebugRegisterSet2::GetRegisters メソッド

指定されたビット マスクによって指定された各レジスタ (コードが現在実行されているプラットフォーム用) の値を取得します。

構文

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 要素は変更されません。

使用できないレジスタがマスクによって示されている場合、そのレジスタに対して不確定な値が返されます。

ICorDebugRegisterSet2::GetRegisters メソッドは、64 を超えるレジスタがあるプラットフォームに必要です。 たとえば、IA64 には 128 の汎用レジスタと 128 の浮動小数点レジスタがあるため、ビット マスクには 64 ビット以上が必要です。

x86 などのプラットフォームの場合のように、64 を超えるレジスタがない場合、GetRegisters メソッドは単に mask バイト配列のバイトを ULONG64 に変換してから ICorDebugRegisterSet::GetRegisters メソッドを呼び出して、それにより ULONG64 マスクを取得します。

必要条件

:システム要件」を参照してください。

ヘッダー: CorDebug.idl、CorDebug.h

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 2.0 以降で使用可能

関連項目