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


Интерфейс ICorProfilerCallback

Предоставляет методы, используемые средой CLR для уведомления профилировщика кода о событиях, на которые подписан профилировщик.

Методы

Метод Description
Метод AppDomainCreationFinished Уведомляет профилировщика о создании домена приложения.
Метод AppDomainCreationStarted Уведомляет профилировщика о создании домена приложения.
Метод AppDomainShutdownFinished Уведомляет профилировщика о том, что домен приложения был выгружен из процесса.
Метод AppDomainShutdownStarted Уведомляет профилировщика о том, что домен приложения выгружается из процесса.
Метод AssemblyLoadFinished Уведомляет профилировщика о завершении загрузки сборки.
Метод AssemblyLoadStarted Уведомляет профилировщика о загрузке сборки.
Метод AssemblyUnloadFinished Уведомляет профилировщика о выгрузке сборки.
Метод AssemblyUnloadStarted Уведомляет профилировщика о выгрузке сборки.
Метод ClassLoadFinished Уведомляет профилировщика о завершении загрузки класса.
Метод ClassLoadStarted Уведомляет профилировщика о загрузке класса.
Метод ClassUnloadFinished Уведомляет профилировщика о завершении выгрузки класса.
Метод ClassUnloadStarted Уведомляет профилировщика о том, что класс выгружается.
Метод COMClassicVTableCreated Уведомляет профилировщика о создании вызываемого оболочки среды выполнения для указанного IID и класса.
Метод COMClassicVTableDeties Уведомляет профилировщика об уничтожении RCW.
Метод ExceptionCatcherEnter Уведомляет профилировщика о том, что элемент управления передается в соответствующий catch блок.
Метод ExceptionCatcherLeave Уведомляет профилировщика о том, что элемент управления передается из соответствующего catch блока.
Метод ExceptionCLRCatcherExecute Устарело в .NET Framework версии 2.0.
Метод ExceptionCLRCatcherFound Устарело в .NET Framework 2.0.
Метод ExceptionOSHandlerEnter Не реализовано. Профилировщик, требующий неуправляемых сведений об исключении, должен получить эти сведения с помощью других средств.
Метод ExceptionOSHandlerLeave Не реализовано. Профилировщик, требующий неуправляемых сведений об исключении, должен получить эти сведения с помощью других средств.
Метод ExceptionSearchCatcherFound Уведомляет профилировщика о том, что этап поиска обработки исключений расположен обработчиком исключения, которое было создано.
Метод ExceptionSearchFilterEnter Уведомляет профилировщика о выполнении фильтра пользователя.
Метод ExceptionSearchFilterLeave Уведомляет профилировщика о том, что фильтр пользователя только что завершил выполнение.
Метод ExceptionSearchFunctionEnter Уведомляет профилировщика о том, что этап поиска обработки исключений ввел функцию.
Метод ExceptionSearchFunctionLeave Уведомляет профилировщика о том, что этап поиска обработки исключений завершил поиск функции.
Метод ExceptionThrown Уведомляет профилировщика о том, что исключение было создано.
Метод ExceptionUnwindFinallyEnter Уведомляет профилировщика о том, что этап очистки обработки исключений вводит finally предложение, содержащееся в указанной функции.
Метод ExceptionUnwindFinallyLeave Уведомляет профилировщика о том, что этап очистки обработки исключений оставил finally предложение.
Метод ExceptionUnwindFunctionEnter Уведомляет профилировщика о том, что этап очистки обработки исключений ввел функцию.
Метод ExceptionUnwindFunctionLeave Уведомляет профилировщика о том, что этап очистки обработки исключений завершил очистку функции.
Метод FunctionUnloadStarted Уведомляет профилировщика о том, что среда выполнения начала выгрузить функцию.
Метод инициализации Вызывается для инициализации профилировщика при запуске нового приложения CLR.
Метод JITCachedFunctionSearchFinished Уведомляет профилировщика о завершении поиска для функции, скомпилированной ранее с помощью NGen.exe.
Метод JITCachedFunctionSearchStarted Уведомляет профилировщика о начале поиска функции, скомпилированной ранее с помощью NGen.exe.
Метод JITCompilationFinished Уведомляет профилировщика о завершении компиляции функции компилятором JIT.
Метод JITCompilationStarted Уведомляет профилировщика о том, что JIT-компилятор начал компилировать функцию.
Метод JITFunctionPitched Уведомляет профилировщика о том, что функция, скомпилированная JIT,была удалена из памяти.
Метод JITInlining Уведомляет профилировщика о том, что JIT-компилятор будет вставлять функцию в соответствии с другой функцией.
Метод ManagedToUnmanagedTransition Уведомляет профилировщика о переходе из управляемого кода в неуправляемый код.
Метод ModuleAttachedToAssembly Уведомляет профилировщика о присоединении модуля к родительской сборке.
Метод ModuleLoadFinished Уведомляет профилировщика о завершении загрузки модуля.
Метод ModuleLoadStarted Уведомляет профилировщика о загрузке модуля.
Метод ModuleUnloadFinished Уведомляет профилировщика о завершении выгрузки модуля.
Метод ModuleUnloadStarted Уведомляет профилировщика о том, что модуль выгружается.
Метод MovedReferences Уведомляет профилировщика о ссылках на объекты, которые были перемещены во время сборки мусора.
Метод ObjectAllocated Уведомляет профилировщика о том, что память в куче была выделена для объекта.
Метод ObjectReferences Уведомляет профилировщика об объектах в памяти, на которые ссылается указанный объект.
Метод ObjectsAllocatedByClass Уведомляет профилировщик о количестве экземпляров каждого указанного класса, созданного с момента предыдущей сборки мусора.
Метод RemotingClientInvocationFinished Уведомляет профилировщика о том, что вызов удаленного взаимодействия выполняется до завершения на клиенте.
Метод RemotingClientInvocationStarted Уведомляет профилировщика о начале вызова удаленного взаимодействия.
Метод RemotingClientReceivingReply Уведомляет профилировщика о том, что серверная часть вызова удаленного взаимодействия завершена, и клиент теперь получает и обрабатывает ответ.
Метод RemotingClientSendingMessage Уведомляет профилировщика о том, что клиент отправляет запрос на сервер.
Метод RemotingServerInvocationReturned Уведомляет профилировщика о завершении вызова метода в ответ на запрос вызова удаленного метода.
Метод RemotingServerInvocationStarted Уведомляет профилировщика о том, что процесс вызывает метод в ответ на запрос вызова удаленного метода.
Метод RemotingServerReceivingMessage Уведомляет профилировщика о том, что процесс получает запрос на вызов или активацию удаленного метода.
Метод RemotingServerSendingReply Уведомляет профилировщика о том, что процесс завершил обработку запроса на вызов удаленного метода и будет передавать ответ через канал.
Метод RootReferences Уведомляет профилировщика сведения о корневых ссылках после сборки мусора.
Метод RuntimeResumeFinished Уведомляет профилировщика о том, что среда выполнения возобновила все потоки среды выполнения и вернулась к нормальной работе.
Метод RuntimeResumeStarted Уведомляет профилировщика о том, что среда выполнения возобновляет все потоки среды выполнения.
Метод RuntimeSuspendAborted Уведомляет профилировщика о прервании приостановки среды выполнения, которая произошла.
Метод RuntimeSuspendFinished Уведомляет профилировщика о завершении приостановки всех потоков среды выполнения.
Метод RuntimeSuspendStarted Уведомляет профилировщика о том, что среда выполнения будет приостанавливать все потоки среды выполнения.
Метод RuntimeThreadResumed Уведомляет профилировщика о возобновлении указанного потока после приостановки.
Метод RuntimeThreadSuspended Уведомляет профилировщика о том, что указанный поток был или будет приостановлен.
Метод завершения работы Уведомляет профилировщика о завершении работы приложения.
Метод ThreadAssignedToOSThread Уведомляет профилировщика о том, что управляемый поток реализуется с помощью определенного потока операционной системы (ОС).
Метод ThreadCreated Уведомляет профилировщика о создании потока.
Метод ThreadDetiesed Уведомляет профилировщика об уничтожении потока.
Метод UnmanagedToManagedTransition Уведомляет профилировщика о переходе от неуправляемого кода к управляемому коду.

Замечания

Среда CLR вызывает метод в интерфейсе ICorProfilerCallback (или ICorProfilerCallback2), чтобы уведомить профилировщика о событии, на которое подписан профилировщик. Это основной интерфейс обратного вызова, с помощью которого среда CLR взаимодействует с профилировщиком кода.

Профилировщик кода должен реализовать методы ICorProfilerCallback интерфейса. Для .NET Framework версии 2.0 или более поздней профилировщик также должен реализовать ICorProfilerCallback2 методы. Каждая реализация метода должна возвращать HRESULT, которая имеет значение S_OK при успешном выполнении или E_FAIL при сбое. В настоящее время среда CLR игнорирует HRESULT, возвращаемую каждым обратным вызовом, кроме ICorProfilerCallback::ObjectReferences.

В реестре Microsoft Windows профилировщик кода должен зарегистрировать объект объект com-модели компонента, реализующий ICorProfilerCallback интерфейсы и ICorProfilerCallback2 интерфейсы. Профилировщик кода подписывается на события, для которых он хочет получать уведомления, вызвав ICorProfilerInfo::SetEventMask. Обычно это делается в реализации профилировщика ICorProfilerCallback::Initialize. Затем профилировщик может получать уведомления от среды выполнения, когда событие происходит или только что произошло в процессе выполнения.

Замечание

Профилировщик регистрирует один COM-объект. Если профилировщик предназначен для .NET Framework версии 1.0 или 1.1, объект COM должен реализовать только методы ICorProfilerCallback. Если он предназначен для .NET Framework версии 2.0 или более поздней, объект COM также должен реализовать методы ICorProfilerCallback2.

Требования

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

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

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

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

См. также