Поделиться через


Метод 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 для создания полного графа ссылок на объект для среды выполнения. Среда CLR гарантирует, что каждая ссылка на объект передается методом ObjectReferences только один раз.

Идентификаторы объектов, возвращаемые , ObjectReferences недопустимы во время самого обратного вызова, так как сборка мусора может находиться в середине движущихся объектов. Поэтому профилировщики не должны пытаться проверять объекты во время ObjectReferences вызова. При вызове метода ICorProfilerCallback2::GarbageCollectionFinished сборка мусора завершается и проверка может быть выполнена безопасно.

Значение NULL ClassId указывает, что objectId имеет тип, который является выгрузкой.

Требования

Платформы: см. раздел Требования к системе.

Заголовок: CorProf.idl, CorProf.h

Библиотека: CorGuids.lib

версии платформа .NET Framework: доступно с версии 2.0

См. также раздел