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] 元に戻す関数を識別する (module
、methodDef
) ペアの moduleId
の部分を指定します。
methodIds
[in] 元に戻す関数を識別する (module
、methodDef
) ペアの methodId
の部分を指定します。
status
[out] このトピックの「状態 HRESULT」のセクションで後述する HRESULT の配列。 各 HRESULT は、並列配列 moduleIds
と methodIds
で指定された各関数を元に戻す操作の成功または失敗を示します。
戻り値
このメソッドは、次の特定の 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 または methodIds が NULL です。 |
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 以降で使用可能
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET