ICorProfilerCallback::ObjectReferences 方法
通知分析工具指定之物件所參考記憶體中的物件。
語法
HRESULT ObjectReferences(
[in] ObjectID objectId,
[in] ClassID classId,
[in] ULONG cObjectRefs,
[in, size_is(cObjectRefs)] ObjectID objectRefIds[] );
參數
objectId
[in] 參考物件的物件識別碼。
classId
[in] 指定物件是其執行個體之類別的識別碼。
cObjectRefs
[in] 指定物件所參考的物件數目 (也就是 objectRefIds
陣列中的項目數)。
objectRefIds
[in] objectId
所參考物件的識別碼陣列。
備註
在記憶體回收完成後,系統會針對堆積中剩餘的每個物件呼叫 ObjectReferences
方法。 如果分析工具從這個回呼傳回錯誤,分析服務將會停止叫用此回呼,直到下一次的記憶體回收為止。
ObjectReferences
回呼可與 ICorProfilerCallback::RootReferences 回呼搭配使用,以建立執行階段的完整物件參考圖形。 Common Language Runtime (CLR) 可確保 ObjectReferences
方法只會報告每個物件參考一次。
ObjectReferences
在自行回呼期間所傳回的物件識別碼無效,因為記憶體回收可能正在移動物件。 因此,分析工具不得嘗試在 ObjectReferences
呼叫期間檢查物件。 呼叫 ICorProfilerCallback2::GarbageCollectionFinished 時,記憶體回收已完成,因此可以放心地進行檢查。
null ClassId
表示 objectId
具有正在卸載的類型。
規格需求
平台:請參閱系統需求。
標頭: CorProf.idl、CorProf.h
程式庫:CorGuids.lib
.NET Framework版本:自 2.0 起提供