共用方式為


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 回呼一起使用,為執行階段建立完整的物件參考圖形。 Common Language Runtime (CLR) 會確保 ObjectReferences 方法只報告一次每個物件參考。

ObjectReferences 傳回的物件 ID 在此回呼期間是無效的,因為記憶體回收可能正在移動物件中。 因此,分析工具不應在 ObjectReferences 呼叫期間嘗試檢查物件。 呼叫 ICorProfilerCallback2::GarbageCollectionFinished 時,已完成記憶體回收,並可安全地執行檢查。

Null 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 介面