Compartilhar via


Interface ICorProfilerCallback

Fornece métodos usados pelo Common Language Runtime (CLR) para notificar um criador de perfis de código quando ocorrerem os eventos assinados pelo criador de perfis.

Métodos

Método Descrição
Método AppDomainCreationFinished Notifica o criador de perfil de que um domínio do aplicativo foi criado.
Método AppDomainCreationStarted Notifica o criador de perfil de que um domínio de aplicativo está sendo criado.
Método AppDomainShutdownFinished Notifica o criador de perfil de que um domínio do aplicativo foi descarregado a partir de um processo.
Método AppDomainShutdownStarted Notifica o criador de perfil de que um domínio do aplicativo está sendo descarregado a partir de um processo.
Método AssemblyLoadFinished Notifica o criador de perfil de que um assembly terminou de carregar.
Método AssemblyLoadStarted Notifica o criador de perfil de que um assembly está sendo carregado.
Método AssemblyUnloadFinished Notifica o criador de perfil de que um assembly foi descarregado.
Método AssemblyUnloadStarted Notifica o criador de perfil de que um assembly está sendo descarregado.
Método ClassLoadFinished Notifica o criador de perfil de que uma classe terminou de carregar.
Método ClassLoadStarted Notifica o criador de perfil de que uma classe está sendo carregada.
Método ClassUnloadFinished Notifica o criador de perfil de que uma classe terminou de descarregar.
Método ClassUnloadStarted Notifica o criador de perfil de que uma classe está sendo descarregada.
Método COMClassicVTableCreated Notifica o criador de perfil de que um Runtime Callable Wrapper (RCW) do IID e da classe especificados foi criado.
Método COMClassicVTableDestroyed Notifica o criador de perfil de que um RCW está sendo destruído.
Método ExceptionCatcherEnter Notifica o criador de perfil de que o controle está sendo passado para o bloco catch apropriado.
Método ExceptionCatcherLeave Notifica o criador de perfil de que o controle está saindo do bloco catch apropriado.
Método ExceptionCLRCatcherExecute Obsoleto no .NET Framework 2.0.
Método ExceptionCLRCatcherFound Obsoleto no .NET Framework 2.0.
Método ExceptionOSHandlerEnter Não implementado. Um criador de perfil que precisa de informações de exceção não gerenciadas deve obter essas informações por outros meios.
Método ExceptionOSHandlerLeave Não implementado. Um criador de perfil que precisa de informações de exceção não gerenciadas deve obter essas informações por outros meios.
Método ExceptionSearchCatcherFound Notifica o criador de perfil de que a fase de pesquisa do tratamento de exceções localizou um identificador da exceção que foi gerada.
Método ExceptionSearchFilterEnter Notifica o criador de perfil de que um filtro de usuário está sendo executado.
Método ExceptionSearchFilterLeave Notifica o criador de perfil de que um filtro de usuário acabou de ser executado.
Método ExceptionSearchFunctionEnter Notifica o criador de perfil de que a fase de pesquisa do tratamento de exceções inseriu uma função.
Método ExceptionSearchFunctionLeave Notifica o criador de perfil de que a fase de pesquisa do tratamento de exceções terminou de pesquisar uma função.
Método ExceptionThrown Notifica o criador de perfil de que uma exceção foi gerada.
Método ExceptionUnwindFinallyEnter Notifica o criador de perfil de que a fase de desenrolamento do tratamento de exceções está inserindo uma cláusula finally contida na função especificada.
Método ExceptionUnwindFinallyLeave Notifica o criador de perfil de que a fase de desenrolamento do tratamento de exceções deixou uma cláusula finally.
Método ExceptionUnwindFunctionEnter Notifica o criador de perfil de que a fase de desenrolamento do tratamento de exceções inseriu uma função.
Método ExceptionUnwindFunctionLeave Notifica o criador de perfil de que a fase de desenrolamento do tratamento de exceções terminou de desenrolar uma função.
Método FunctionUnloadStarted Notifica o criador de perfil de que o runtime começou a descarregar uma função.
Método Initialize Chamado para inicializar o criador de perfil sempre que um novo aplicativo CLR for iniciado.
Método JITCachedFunctionSearchFinished Notifica o criador de perfil de que uma pesquisa foi concluída para uma função que foi compilada anteriormente usando NGen.exe.
Método JITCachedFunctionSearchStarted Notifica o criador de perfil de que uma pesquisa foi iniciada para uma função que foi compilada anteriormente usando NGen.exe.
Método JITCompilationFinished Notifica o criador de perfil de que o compilador JIT terminou de compilar uma função.
Método JITCompilationStarted Notifica o criador de perfil de que o compilador JIT (just-in-time) começou a compilar uma função.
Método JITFunctionPitched Notifica o criador de perfil de que uma função que foi compilada como JIT foi removida da memória.
Método JITInlining Notifica o criador de perfil de que o compilador JIT está prestes a inserir uma função de acordo com outra função.
Método ManagedToUnmanagedTransition Notifica o criador de perfil de que ocorreu uma transição do código gerenciado para o código não gerenciado.
Método ModuleAttachedToAssembly Notifica o criador de perfil de que um módulo está sendo anexado ao assembly pai.
Método ModuleLoadFinished Notifica o criador de perfil de que um módulo concluiu o carregamento.
Método ModuleLoadStarted Notifica o criador de perfil de que um módulo está sendo carregado.
Método ModuleUnloadFinished Notifica o criador de perfil de que um módulo concluiu o carregamento.
Método ModuleUnloadStarted Notifica o criador de perfil de que um módulo está sendo descarregado.
Método MovedReferences Notifica o criador de perfil sobre as referências de objeto que foram movidas durante a coleta de lixo.
Método ObjectAllocated Notifica o criador de perfil de que a memória dentro do heap foi alocada para um objeto.
Método ObjectReferences Notifica o criador de perfil sobre objetos na memória referenciados pelo objeto especificado.
Método ObjectsAllocatedByClass Notifica o criador de perfil sobre o número de instâncias de cada classe especificada que foi criada desde a última coleta de lixo.
Método RemotingClientInvocationFinished Notifica o criador de perfil de que uma chamada de comunicação remota foi totalmente executada no cliente.
Método RemotingClientInvocationStarted Notifica o criador de perfil de que uma chamada de comunicação remota foi iniciada.
Método RemotingClientReceivingReply Notifica o criador de perfil de que a parte do lado do servidor de uma chamada de comunicação remota foi concluída e que o cliente agora está recebendo e prestes a processar a resposta.
Método RemotingClientSendingMessage Notifica o criador de perfil de que o cliente está enviando uma solicitação para o servidor.
Método RemotingServerInvocationReturned Notifica o criador de perfil de que o processo terminou de invocar um método em resposta a uma solicitação de invocação de método remoto.
Método RemotingServerInvocationStarted Notifica o criador de perfil de que o processo está invocando um método em resposta a uma solicitação de invocação de método remoto.
Método RemotingServerReceivingMessage Notifica o criador de perfil de que o processo está recebendo uma solicitação de invocação ou ativação de método remoto.
Método RemotingServerSendingReply Notifica o criador de perfil de que o processo terminou de processar uma solicitação de invocação de método remoto e está prestes a transmitir a resposta por meio de um canal.
Método RootReferences Notifica o criador de perfil com informações sobre referências raiz após a coleta de lixo.
Método RuntimeResumeFinished Notifica o criador de perfil de que o runtime retomou todos os threads de runtime e voltou à operação normal.
Método RuntimeResumeStarted Notifica o criador de perfil de que o runtime está retomando todos os threads em tempo de execução.
Método RuntimeSuspendAborted Notifica o criador de perfil de que o runtime anulou a suspensão em tempo de execução que estava ocorrendo.
Método RuntimeSuspendFinished Notifica o criador de perfil de que o runtime concluiu a suspensão de todos os threads em tempo de execução.
Método RuntimeSuspendStarted Notifica o criador de perfil de que o runtime está prestes a suspender todos os threads em tempo de execução.
Método RuntimeThreadResumed Notifica o criador de perfil de que o thread especificado foi retomado após ser suspenso.
Método RuntimeThreadSuspended Notifica o criador de perfil de que o thread especificado foi ou está prestes a ser suspenso.
Método Shutdown Notifica o criador de perfil de que o aplicativo está sendo desligado.
Método ThreadAssignedToOSThread Notifica o criador de perfil de que um thread gerenciado está sendo implementado usando um thread específico do sistema operacional (SO).
Método ThreadCreated Notifica o criador de perfil de que um thread foi criado.
Método ThreadDestroyed Notifica o criador de perfil de que um thread foi destruído.
Método UnmanagedToManagedTransition Notifica o criador de perfil de que ocorreu uma transição do código não gerenciado para o código gerenciado.

Comentários

O CLR chama um método na interface do ICorProfilerCallback (ou ICorProfilerCallback2) para notificar o criador de perfil de quando ocorre um evento ao qual o criador de perfil assina. Essa é a interface de retorno de chamada principal por meio da qual o CLR se comunica com o criador de perfil de código.

Um criador de perfil de código deve implementar os métodos da interface do ICorProfilerCallback. No .NET Framework 2.0 ou posterior, o criador de perfil também deve implementar os métodos do ICorProfilerCallback2. Cada implementação de método deve retornar um HRESULT que tenha um valor de S_OK quando bem-sucedido ou E_FAIL em caso de falha. Atualmente, o CLR ignora o HRESULT retornado por cada retorno de chamada, exceto ICorProfilerCallback::ObjectReferences.

No registro do Microsoft Windows, um criador de perfil de código deve registrar seu objeto Component Object Model (COM) que implementa as interfaces do ICorProfilerCallback e ICorProfilerCallback2. Um criador de perfil de código assina os eventos para os quais deseja receber notificação chamando ICorProfilerInfo::SetEventMask. Isso geralmente é feito na implementação do criador de perfil de ICorProfilerCallback::Initialize. Depois disso, o criador de perfil poderá receber uma notificação do runtime quando um evento estiver prestes a ocorrer ou quando tiver ocorrido apenas em um processo de runtime em execução.

Observação

O criador de perfil registra um único objeto COM. Se o foco do criador de perfil for o .NET Framework 1.0 ou 1.1, esse objeto COM precisará implementar apenas os métodos de ICorProfilerCallback. Se o foco do criador de perfil for o .NET Framework 2.0 ou posterior, o objeto COM também precisará implementar os métodos de ICorProfilerCallback2.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: Disponíveis desde a versão 1.0

Confira também