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 會指出嘗試還原平行陣列 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,或者 moduleIdsmethodIdsNULL
E_OUTOFMEMORY CLR 無法完成要求,因為記憶體不足。

狀態 HRESULT

狀態陣列 HRESULT 描述
S_OK 已成功還原對應的函式。
E_INVALIDARG moduleIDmethodDef 參數為 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 起可用

另請參閱