ICorProfilerCallback2 接口

提供公共语言运行时 (CLR) 在代码探查器订阅的事件发生时用来通知该探查器的方法。 ICorProfilerCallback2 接口是对 ICorProfilerCallback 接口的扩展。 也就是说,它提供了 .NET Framework 2.0 版中引入的新回调。

注意注意

每个方法实现都必须返回一个 HRESULT,如果成功,则它的值为 S_OK,否则它的值为 E_FAIL。目前,CLR 会忽略每个回调(ICorProfilerCallback::ObjectReferences 除外)返回的 HRESULT。

方法

方法

说明

ICorProfilerCallback2::FinalizeableObjectQueued 方法

通知代码探查器某个具有终结器的对象已排入队列,等待终结器线程执行其 Finalize 方法。

ICorProfilerCallback2::GarbageCollectionFinished 方法

通知探查器已完成垃圾回收并为其发出了所有垃圾回收回调。

ICorProfilerCallback2::GarbageCollectionStarted 方法

通知代码探查器已启动垃圾回收。

ICorProfilerCallback2::HandleCreated 方法

通知代码探查器已创建某个垃圾回收句柄。

ICorProfilerCallback2::HandleDestroyed 方法

通知代码探查器某个垃圾回收句柄已销毁。

ICorProfilerCallback2::RootReferences2 方法

通知探查器有关在发生垃圾回收后进行的根引用的信息。 此方法是对 ICorProfilerCallback::RootReferences 方法的扩展。

ICorProfilerCallback2::SurvivingReferences 方法

通知探查器有关在垃圾回收中保留下来的对象引用的信息。

ICorProfilerCallback2::ThreadNameChanged 方法

通知代码探查器线程的名称已更改。

备注

当探查器订阅的事件发生时,CLR 将调用 ICorProfilerCallback(或 ICorProfilerCallback2)接口中的方法来通知该探查器。 这是 CLR 用来与代码探查器通信的主回调接口。

代码探查器必须实现 ICorProfilerCallback 接口的方法。 对于 .NET Framework 2.0 版及更高版本,该探查器还必须实现 ICorProfilerCallback2 方法。 每个方法实现都必须返回一个 HRESULT,如果成功,则它的值为 S_OK,否则它的值为 E_FAIL。 目前,CLR 会忽略每个回调(ICorProfilerCallback::ObjectReferences 除外)返回的 HRESULT。

代码探查器必须在 Microsoft Windows 注册表中注册其实现 ICorProfilerCallbackICorProfilerCallback2 接口的 COM 对象。 代码探查器通过调用 ICorProfilerInfo::SetEventMask 来订阅需要接收其相关通知的事件。 此操作通常在探查器实现 ICorProfilerCallback::Initialize 时完成。 这样,当执行中的运行时进程内即将发生或已发生某个事件时,探查器便能收到来自该运行时的通知。

注意注意

探查器注册单个 COM 对象。如果探查器面向的是 .NET Framework 1.0 或 1.1 版,则该 COM 对象仅需实现 ICorProfilerCallback 的方法。如果探查器面向的是 .NET Framework 2.0 版及更高版本,则该 COM 对象还必须实现 ICorProfilerCallback2 的方法。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**CorProf.idl、CorProf.h

**库:**CorGuids.lib

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

请参见

参考

ICorProfilerCallback 接口

其他资源

分析接口