Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Уведомляет профилировщик о корневых ссылках после сборки мусора. Этот метод является расширением метода ICorProfilerCallback::RootReferences .
Синтаксис
HRESULT RootReferences2(
[in] ULONG cRootRefs,
[in, size_is(cRootRefs)] ObjectID rootRefIds[],
[in, size_is(cRootRefs)] COR_PRF_GC_ROOT_KIND rootKinds[],
[in, size_is(cRootRefs)] COR_PRF_GC_ROOT_FLAGS rootFlags[],
[in, size_is(cRootRefs)] UINT_PTR rootIds[]);
Параметры
cRootRefs
[in] Количество элементов в массивах rootRefIds, rootKinds, rootFlagsи rootIds .
rootRefIds
[in] Массив идентификаторов объектов, каждый из которых ссылается либо на статический объект, либо на объект в стеке. Элементы в массиве rootKinds предоставляют сведения для классификации соответствующих элементов в массиве rootRefIds .
rootKinds
[in] Массив COR_PRF_GC_ROOT_KIND значений, указывающих тип корня сборки мусора.
rootFlags
[in] Массив COR_PRF_GC_ROOT_FLAGS значений , описывающих свойства корня сборки мусора.
rootIds
[in] Массив UINT_PTR значений, указывающих на целое число, содержащее дополнительные сведения о корне сборки мусора в зависимости от значения rootKinds параметра .
Если тип корневого каталога является стеком, идентификатор корня — это функция, содержащая переменную . Если корневой идентификатор равен 0, функция является неименованной функцией, которая является внутренней для среды CLR. Если тип корневого элемента — дескриптор, идентификатор корня — это дескриптор сборки мусора. Для других корневых типов идентификатор является непрозрачным значением, и его следует игнорировать.
Комментарии
Массивы rootRefIds, rootKinds, rootFlagsи rootIds являются параллельными массивами. То есть , rootRefIds[i]rootKinds[i], rootFlags[i]и относятся к одному и rootIds[i] тому же корню.
Для уведомления профилировщика вызываются и RootReferencesRootReferences2 . Профилировщики обычно реализуют один или другой метод, но не оба, так как передаваемые RootReferences2 сведения являются надмножеством , которые передаются в RootReferences.
Записи в могут быть равны нулю, что означает, что соответствующая корневая ссылка имеет значение NULL и не ссылается на объект в rootRefIds управляемой куче.
Идентификаторы объектов, возвращаемые RootReferences2 , недопустимы во время самого обратного вызова, так как сборка мусора может находиться в середине перемещения объектов со старых адресов на новые. В связи с этим профилировщикам не следует пытаться проверять объекты во время вызова RootReferences2. При вызове метода ICorProfilerCallback2::GarbageCollectionFinished все объекты были перемещены в новое расположение и могут быть безопасно проверены.
Требования
Платформы: см. раздел Требования к системе.
Заголовок: CorProf.idl, CorProf.h
Библиотека: CorGuids.lib
версии платформа .NET Framework: доступно с версии 2.0