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