ICorDebugRegisterSet2::GetRegisters メソッド
現在コードを実行しているプラットフォームの、特定のビット マスクで指定された各レジスタの値を取得します。
HRESULT GetRegisters (
[in] ULONG32 maskCount,
[in, size_is(maskCount)] BYTE mask[],
[in] ULONG32 regCount,
[out, size_is(regCount)] CORDB_REGISTER regBuffer[]
);
パラメーター
maskCount
[入力] mask 配列のサイズ (バイト単位)。mask
[入力] 各ビットがレジスタに対応するバイトの配列。 ビットが 1 の場合は、対応するレジスタの値が取得されます。regCount
[入力] 取得するレジスタ値の数。regBuffer
[出力] それぞれがレジスタの値を受け取る、CORDB_REGISTER オブジェクトの配列。
解説
GetRegisters メソッドは、マスクによって指定されたレジスタから値の配列を返します。 この配列には、マスク ビットが設定されていないレジスタの値は格納されません。 したがって、regBuffer 配列のサイズは、マスク内の 1 の数と同じである必要があります。 regCount の値がマスクで指定したレジスタ数に比べて少なすぎる場合、大きい番号のレジスタの値がセットから切り捨てられます。 regCount 値が大きすぎる場合、未使用の regBuffer 要素は変更されません。
使用できないレジスタをマスクで指定した場合、そのレジスタに対しては不定な値が返ります。
ICorDebugRegisterSet2::GetRegisters メソッドは、64 を超えるレジスタを持つプラットフォームで必要です。 たとえば、IA-64 プロセッサには、128 の汎用レジスタと 128 の浮動小数点レジスタがあるので、ビット マスクには 64 ビットを超えるビットが必要です。
64 を超えるレジスタを持たないプラットフォーム (x86 など) の場合、GetRegisters メソッドは、mask バイト配列内のバイトを ULONG64 に実際に変換した後、ICorDebugRegisterSet::GetRegisters メソッドを呼び出します。このメソッドが ULONG64 マスクを受け取ります。
必要条件
プラットフォーム: 「.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