Enumeração COR_PRF_MONITOR

Contém valores usados para especificar comportamentos, recursos ou eventos que o criador de perfis deseja assinar.

Sintaxe

typedef enum {  
    COR_PRF_MONITOR_NONE                = 0x00000000,  
    COR_PRF_MONITOR_FUNCTION_UNLOADS    = 0x00000001,  
    COR_PRF_MONITOR_CLASS_LOADS         = 0x00000002,  
    COR_PRF_MONITOR_MODULE_LOADS        = 0x00000004,  
    COR_PRF_MONITOR_ASSEMBLY_LOADS      = 0x00000008,  
    COR_PRF_MONITOR_APPDOMAIN_LOADS     = 0x00000010,  
    COR_PRF_MONITOR_JIT_COMPILATION     = 0x00000020,  
    COR_PRF_MONITOR_EXCEPTIONS          = 0x00000040,  
    COR_PRF_MONITOR_GC                  = 0x00000080,  
    COR_PRF_MONITOR_OBJECT_ALLOCATED    = 0x00000100,  
    COR_PRF_MONITOR_THREADS             = 0x00000200,  
    COR_PRF_MONITOR_REMOTING            = 0x00000400,  
    COR_PRF_MONITOR_CODE_TRANSITIONS    = 0x00000800,  
    COR_PRF_MONITOR_ENTERLEAVE          = 0x00001000,  
    COR_PRF_MONITOR_CCW                 = 0x00002000,  
    COR_PRF_MONITOR_REMOTING_COOKIE     = 0x00004000 |
                                          COR_PRF_MONITOR_REMOTING,  
    COR_PRF_MONITOR_REMOTING_ASYNC      = 0x00008000 |
                                          COR_PRF_MONITOR_REMOTING,  
    COR_PRF_MONITOR_SUSPENDS            = 0x00010000,  
    COR_PRF_MONITOR_CACHE_SEARCHES      = 0x00020000,  
    COR_PRF_ENABLE_REJIT                = 0x00040000,  
    COR_PRF_ENABLE_INPROC_DEBUGGING     = 0x00080000,  
    COR_PRF_ENABLE_JIT_MAPS             = 0x00100000,  
    COR_PRF_DISABLE_INLINING            = 0x00200000,  
    COR_PRF_DISABLE_OPTIMIZATIONS       = 0x00400000,  
    COR_PRF_ENABLE_OBJECT_ALLOCATED     = 0x00800000,  
    COR_PRF_MONITOR_CLR_EXCEPTIONS      = 0x01000000,  
    COR_PRF_MONITOR_ALL                 = 0x0107FFFF,  
    COR_PRF_ENABLE_FUNCTION_ARGS        = 0X02000000,  
    COR_PRF_ENABLE_FUNCTION_RETVAL      = 0X04000000,  
    COR_PRF_ENABLE_FRAME_INFO           = 0X08000000,  
    COR_PRF_ENABLE_STACK_SNAPSHOT       = 0X10000000,  
    COR_PRF_USE_PROFILE_IMAGES          = 0x20000000,  
    COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST  
                                        = 0x40000000,  
    COR_PRF_DISABLE_ALL_NGEN_IMAGES     = 0x80000000,  
    COR_PRF_ALL                         = 0x8FFFFFFF,  
    COR_PRF_REQUIRE_PROFILE_IMAGE       = COR_PRF_USE_PROFILE_IMAGES |
                                          COR_PRF_MONITOR_CODE_TRANSITIONS |
                                          COR_PRF_MONITOR_ENTERLEAVE,  
    COR_PRF_ALLOWABLE_AFTER_ATTACH      = COR_PRF_MONITOR_THREADS |  
                                          COR_PRF_MONITOR_MODULE_LOADS |  
                                          COR_PRF_MONITOR_ASSEMBLY_LOADS |  
                                          COR_PRF_MONITOR_APPDOMAIN_LOADS |  
                                          COR_PRF_ENABLE_STACK_SNAPSHOT |  
                                          COR_PRF_MONITOR_GC |  
                                          COR_PRF_MONITOR_SUSPENDS |  
                                          COR_PRF_MONITOR_CLASS_LOADS |  
                                          COR_PRF_MONITOR_JIT_COMPILATION,  
    COR_PRF_MONITOR_IMMUTABLE           = COR_PRF_MONITOR_CODE_TRANSITIONS |  
                                          COR_PRF_MONITOR_REMOTING |  
                                          COR_PRF_MONITOR_REMOTING_COOKIE |  
                                          COR_PRF_MONITOR_REMOTING_ASYNC |  
                                          COR_PRF_ENABLE_REJIT |  
                                          COR_PRF_ENABLE_INPROC_DEBUGGING |  
                                          COR_PRF_ENABLE_JIT_MAPS |  
                                          COR_PRF_DISABLE_OPTIMIZATIONS |  
                                          COR_PRF_DISABLE_INLINING |  
                                          COR_PRF_ENABLE_OBJECT_ALLOCATED |  
                                          COR_PRF_ENABLE_FUNCTION_ARGS |  
                                          COR_PRF_ENABLE_FUNCTION_RETVAL |  
                                          COR_PRF_ENABLE_FRAME_INFO |  
                                          COR_PRF_USE_PROFILE_IMAGES |  
                     COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |  
                                          COR_PRF_DISABLE_ALL_NGEN_IMAGES  
} COR_PRF_MONITOR;  

Membros

As seções a seguir listam membros de enumeração COR_PRF_MONITOR por categoria. As categorias são:

Nenhum sinalizador definido

Membro DESCRIÇÃO
COR_PRF_MONITOR_NONE Nenhum sinalizador está definido.

Sinalizadores de retorno de chamada

Membro DESCRIÇÃO
COR_PRF_MONITOR_ALL Habilita todos os eventos de retorno de chamada.
COR_PRF_MONITOR_APPDOMAIN_LOADS Controla os retornos de chamada AppDomainCreation* e AppDomainShutdown* na interface ICorProfilerCallback
COR_PRF_MONITOR_ASSEMBLY_LOADS Controla os retornos de chamada AssemblyLoad* e AssemblyUnload* na interface ICorProfilerCallback
COR_PRF_MONITOR_CACHE_SEARCHES Controla os retornos de chamada JITCachedFunctionSearch* na interface ICorProfilerCallback.

O comportamento deste sinalizador é alterado no .NET Framework versão 2.0.
COR_PRF_MONITOR_CCW Controla os retornos de chamada COMClassicVTable* na interface ICorProfilerCallback.
COR_PRF_MONITOR_CLASS_LOADS Controla os retornos de chamada ClassLoad* e ClassUnload* na interface ICorProfilerCallback.
COR_PRF_MONITOR_CLR_EXCEPTIONS Controla os retornos de chamada ExceptionCLRCatcher* na interface ICorProfilerCallback.
COR_PRF_MONITOR_CODE_TRANSITIONS Controla os retornos de chamada UnmanagedToManagedTransition e ManagedToUnmanagedTransition na interface ICorProfilerCallback
COR_PRF_MONITOR_ENTERLEAVE Controla as funções estáticas globais de perfilFunctionEnter*, FunctionLeave* e FunctionTailCall*.
COR_PRF_MONITOR_EXCEPTIONS Controla o retorno de chamada ExceptionThrown e os retornos de chamada ExceptionSearch*, ExceptionOSHandler*, ExceptionUnwind* e ExceptionCatcher* na interface ICorProfilerCallback.
COR_PRF_MONITOR_FUNCTION_UNLOADS Controla o retorno de chamada FunctionUnloadStarted na interface ICorProfilerCallback.
COR_PRF_MONITOR_GC Controla os retornos de chamada GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, MovedReferences2, SurvivingReferences, SurvivingReferences2, ObjectReferences, ObjectsAllocatedByClass, RootReferences, RootReferences2, HandleCreated, HandleDestroyed e FinalizeableObjectQueued nas interfaces ICorProfilerCallback*. Quando COR_PRF_MONITOR_GC é alocada, a coleta de lixo simultânea é desativada.
COR_PRF_MONITOR_JIT_COMPILATION Controla os retornos de chamada JITCompilation*, JITFunctionPitched e JITInlining na interface ICorProfilerCallback.
COR_PRF_MONITOR_MODULE_LOADS Controla os retornos de chamada ModuleLoad*, ModuleUnload* e ModuleAttachedToAssembly na interface ICorProfilerCallback.
COR_PRF_MONITOR_OBJECT_ALLOCATED Controla o retorno de chamada ObjectAllocated na interface ICorProfilerCallback.
COR_PRF_MONITOR_REMOTING Controla os retornos de chamada Remoting* na interface ICorProfilerCallback.
COR_PRF_MONITOR_REMOTING_ASYNC Controla se os retornos de chamada Remoting* vão monitorar ou não os eventos de forma assíncrona.
COR_PRF_MONITOR_REMOTING_COOKIE Controla se um cookie é passado para os retornos de chamada Remoting*.
COR_PRF_MONITOR_SUSPENDS Controla os retornos de chamada RuntimeSuspend*, RuntimeResume*, RuntimeThreadSuspended e RuntimeThreadResumed na interface ICorProfilerCallback.
COR_PRF_MONITOR_THREADS Controla os retornos de chamada ThreadCreated, ThreadDestroyed, ThreadAssignedToOSThread e ThreadNameChanged nas interfaces ICorProfilerCallback e ICorProfilerCallback2.

Sinalizadores de habilitação de recurso

Membro DESCRIÇÃO
COR_PRF_ENABLE_FRAME_INFO Habilita a recuperação de um ClassID exato para uma função genérica, chamando o método GetFunctionInfo2 com um valor COR_PRF_FRAME_INFO retornado pelo retorno de chamada FunctionEnter2.
COR_PRF_ENABLE_FUNCTION_ARGS Permite rastreamento de argumento usando os retornos de chamada FunctionEnter2 ou FunctionEnter3WithInfo e o método GetFunctionEnter3Info.
COR_PRF_ENABLE_FUNCTION_RETVAL Permite o rastreamento de valores retornados usando os retornos de chamada FunctionLeave2 ou FunctionLeave3WithInfo e o método GetFunctionLeave3Info.
COR_PRF_ENABLE_INPROC_DEBUGGING Preterido.

Não tem suporte no processo de depuração. Este sinalizador não tem efeito.
COR_PRF_ENABLE_JIT_MAPS Preterido.

Permite que o criador de perfil obtenha mapas IL para nativo usando GetILToNativeMapping. Do .NET Framework 2.0 em diante, o runtime sempre acompanha os mapas IL para nativo, portanto, esse sinalizador é sempre considerado como definido.
COR_PRF_ENABLE_OBJECT_ALLOCATED Informa o runtime que o criador de perfil pode desejar para notificações de alocação do objeto. Este sinalizador deve ser definido durante a inicialização. Permite que o criador de perfil use posteriormente o sinalizador COR_PRF_MONITOR_OBJECT_ALLOCATED para receber retornos de chamada de ObjectAllocated.
COR_PRF_ENABLE_REJIT Permite chamadas para os métodos RequestReJIT e RequestRevert. O criador de perfil deve definir este sinalizador na inicialização. Se o criador de perfil especificar este sinalizador, também deverá especificar COR_PRF_DISABLE_ALL_NGEN_IMAGES.
COR_PRF_ENABLE_STACK_SNAPSHOT Permite chamadas para o método DoStackSnapshot.

Sinalizadores de configuração

Membro DESCRIÇÃO
COR_PRF_DISABLE_ALL_NGEN_IMAGES Impede o carregamento de todas as imagens nativas (incluindo imagens aprimoradas do criador de perfil). Se este sinalizador e o sinalizador COR_PRF_USE_PROFILE_IMAGES estiverem especificados, COR_PRF_DISABLE_ALL_NGEN_IMAGES será usado.
COR_PRF_DISABLE_INLINING Desabilita todas as conexões embutidas.
COR_PRF_DISABLE_OPTIMIZATIONS Desabilita todas as otimizações de código.
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST Desabilita verificações de transparência de segurança que normalmente são feitas durante a compilação JIT (Just-in-Time) e o carregamento de classe para os conjuntos de confiança total. Isso pode facilitar a execução de instrumentação.
COR_PRF_USE_PROFILE_IMAGES Faz com que a imagem nativa procure imagens aprimoradas para o criador de perfil. Se nenhuma imagem aprimorada para o criador de perfil for encontrada para determinada montagem, o Common Language Runtime (CRL) retornará ao JIT para esse assembly. Se este sinalizador e o sinalizador COR_PRF_DISABLE_ALL_NGEN_IMAGES estiverem especificados, COR_PRF_DISABLE_ALL_NGEN_IMAGES será usado.

Sinalizadores compostos

Membro DESCRIÇÃO
COR_PRF_ALL Representa todos os valores de sinalizador COR_PRF_MONITOR.
COR_PRF_ALLOWABLE_AFTER_ATTACH Representa todos os sinalizadores COR_PRF_MONITOR que podem ser definidos após o criador de perfis ser anexado a um aplicativo em execução. A seção de sintaxe indica os sinalizadores individuais que estão presentes nesta bitmask.
COR_PRF_MONITOR_ALL Habilita todos os eventos de retorno de chamada.
COR_PRF_MONITOR_IMMUTABLE Representa todos os sinalizadores COR_PRF_MONITOR que podem ser definidos apenas durante a inicialização. A tentativa de alterar qualquer um desses sinalizadores após a inicialização retorna um valor HRESULT que indica falha.
COR_PRF_REQUIRE_PROFILE_IMAGE Representa todos os sinalizadores COR_PRF_MONITOR que necessitam de imagens aprimoradas por perfil.

Comentários

Um valor COR_PRF_MONITOR é usado com os métodos ICorProfilerInfo::GetEventMask e ICorProfilerInfo::SetEventMask para definir as notificações de eventos que o Common Language Runtime faz no criador de perfil.

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