Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Уведомляет профилировщик о корневых ссылках после сборки мусора. Этот метод является расширением метода 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