Share via


ICorProfilerInfo4::RequestRevert メソッド

指定された関数のすべてのインスタンスを元のバージョンに戻します。

構文

HRESULT RequestRevert (  
   [in] ULONG    cFunctions,  
   [in, size_is(cFunctions)]  ModuleID    moduleIds[],  
   [in, size_is(cFunctions)]  mdMethodDef methodIds[],  
   [out, size_is(cFunctions)]  HRESULT status[]);  

パラメーター

cFunctions
[in] 元に戻す関数の数。

moduleIds
[in] 元に戻す関数を識別する (modulemethodDef) ペアの moduleId の部分を指定します。

methodIds
[in] 元に戻す関数を識別する (modulemethodDef) ペアの methodId の部分を指定します。

status
[out] このトピックの「状態 HRESULT」のセクションで後述する HRESULT の配列。 各 HRESULT は、並列配列 moduleIdsmethodIds で指定された各関数を元に戻す操作の成功または失敗を示します。

戻り値

このメソッドは、次の特定の HRESULT と、メソッドの失敗を示す HRESULT エラーも返します。

HRESULT 説明
S_OK すべての要求を元に戻す操作が試行されました。ただし、返された状態配列を確認して、どの関数が正常に元に戻されたかを判断する必要があります。
CORPROF_E_CALLBACK4_REQUIRED この呼び出しをサポートするため、プロファイラーは ICorProfilerCallback4 インターフェイスを実装する必要があります。
CORPROF_E_REJIT_NOT_ENABLED JIT 再コンパイルが有効になっていませんでした。 ICorProfilerInfo::SetEventMask メソッドを使用して COR_PRF_ENABLE_REJIT フラグを設定し、初期化中に JIT 再コンパイルを有効にする必要があります。
E_INVALIDARG cFunctions が 0 であるか、moduleIds または methodIdsNULL です。
E_OUTOFMEMORY メモリが不足しているために、CLR は要求を完了できませんでした。

状態 HRESULT

状態配列 HRESULT 説明
S_OK 対応する関数は正常に元に戻されました。
E_INVALIDARG moduleID パラメーターまたは methodDef パラメーターが NULL です。
CORPROF_E_DATAINCOMPLETE モジュールが完全に読み込まれていないか、またはアンロード中です。
CORPROF_E_MODULE_IS_DYNAMIC 指定されたモジュールは (Reflection.Emit などにより) 動的に生成されました。 したがって、このメソッドではサポートされません。
CORPROF_E_ACTIVE_REJIT_REQUEST_NOT_FOUND CLR は、対応するアクティブな再コンパイル要求が見つからなかったために、指定された関数を元に戻すことができませんでした。 再コンパイルが要求されていないか、または関数は既に元に戻されています。
その他 オペレーティング システムは、CLR 制御範囲外のエラーを返しました。 たとえば、メモリ ページのアクセスの保護を変更するシステム コールに失敗した場合、オペレーティング システムのエラーが表示されます。

解説

次に、元に戻された関数のいずれかのインスタンスが呼び出されると、その関数の元のバージョンが実行されます。 既に実行中の関数は、実行中のバージョンの実行を完了させます。

必要条件

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

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

ライブラリ: CorGuids.lib

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

関連項目