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 时,垃圾回收已完成,可安全完成检查。

null ClassId 指示 objectId 有一个正在卸载的类型。

要求

平台:请参阅系统要求

头文件: CorProf.idl、CorProf.h

库:CorGuids.lib

.NET Framework 版本:自 2.0 起可用

另请参阅