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,或者 moduleIdsmethodIdsNULL
E_OUTOFMEMORY CLR 无法完成请求,因为它已耗尽内存。

状态 HRESULTS

状态数组 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 起可用

另请参阅