ICorProfilerCallback::ObjectReferences 方法

通知探查器有关正在被指定对象引用的内存中对象的情况。

HRESULT ObjectReferences(
    [in]  ObjectID objectId,
    [in]  ClassID  classId,
    [in]  ULONG    cObjectRefs,
    [in, size_is(cObjectRefs)] ObjectID objectRefIds[] );

参数

  • objectId
    [in] 正在引用对象的对象的 ID。

  • classId
    [in] 指定对象作为其实例的类的 ID。

  • cObjectRefs
    [in] 指定对象所引用的对象的数目(即 objectRefIds 数组中的元素数)。

  • objectRefIds
    [in] 一个由 objectId 正在引用的对象的 ID 构成的数组。

备注

垃圾回收完成后为堆中剩余的每个对象调用 ObjectReferences 方法。 如果探查器从此回调中返回错误,则在下一次垃圾回收之前,分析服务将中止调用此回调。

ObjectReferences 回调可与 ICorProfilerCallback::RootReferences 回调结合使用,以便为运行时创建完整的对象引用关系图。 公共语言运行时 (CLR) 确保 ObjectReferences 方法仅对每个对象引用报告一次。

ObjectReferences 返回的对象 ID 在该回调期间无效,因为垃圾回收可能正在移动对象。 因此,在 ObjectReferences 调用期间,探查器决不能尝试检查对象。 当调用 ICorProfilerCallback2::GarbageCollectionFinished 时,垃圾回收完成并且可以安全地执行检查。

一个空 ClassId,指示 objectId 的类型正在卸载。

要求

**平台:**请参见 .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 接口