Compartilhar via


Interface ICorProfilerCallback2

Fornece métodos que são usados pelo common linguagem tempo de execução (CLR) para notificar um criador de perfil de código quando ocorrem os eventos que o criador de perfil tem se inscreveu. The ICorProfilerCallback2 interface é uma extensão das ICorProfilerCallback interface. Ou seja, ele fornece novos retornos de chamada introduzidos no .NET estrutura versão 2.0.

ObservaçãoObservação:

Cada implementação do método deve retornar uma HRESULT com um valor de S_OK no sucesso ou E_FAIL em caso de falha. Atualmente, o CLR ignora o HRESULT que é retornado por cada chamada de retorno, exceto ICorProfilerCallback::ObjectReferences.

interface ICorProfilerCallback2 : ICorProfilerCallback
{
    HRESULT ThreadNameChanged(
        [in] ThreadID threadId,
        [in] ULONG cchName,
        [in] WCHAR name[]);
    HRESULT GarbageCollectionStarted(
        [in] int cGenerations,
        [in, size_is(cGenerations), length_is(cGenerations)] BOOL generationCollected[],
        [in] COR_PRF_GC_REASON reason);
    HRESULT SurvivingReferences(
        [in]                                    ULONG    cSurvivingObjectIDRanges,
        [in, size_is(cSurvivingObjectIDRanges)] ObjectID objectIDRangeStart[] ,
        [in, size_is(cSurvivingObjectIDRanges)] ULONG    cObjectIDRangeLength[] );
    HRESULT GarbageCollectionFinished();
    HRESULT FinalizeableObjectQueued(
        [in] DWORD finalizerFlags,
        [in] ObjectID objectID);
    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[]);
    HRESULT HandleCreated(
        [in] GCHandleID handleId,
        [in] ObjectID initialObjectId);
    HRESULT HandleDestroyed(
        [in] GCHandleID handleId);
}

Métodos

Método

Descrição

Método ICorProfilerCallback2::FinalizeableObjectQueued

Notifica o criador de perfil de código que um objeto com um finalizador foi na na fila para o thread do finalizador para execução do seu Finalize método.

Método ICorProfilerCallback2::GarbageCollectionFinished

Notifica o criador de perfil que um lixo coleção foi concluída e todos os lixo coleção retornos de chamada tem sido emitidos por ela.

Método ICorProfilerCallback2::GarbageCollectionStarted

Notifica o criador de perfil de código que um lixo coleção foi iniciado.

Método ICorProfilerCallback2::HandleCreated

Notifica o criador de perfil de código que um lixo coleção identificador foi criado.

Método ICorProfilerCallback2::HandleDestroyed

Notifica o criador de perfil de código que um lixo coleção identificador foi destruído.

Método ICorProfilerCallback2::RootReferences2

Notifica o criador de perfil sobre referências raiz após um lixo coleção ocorreu. Esse método é uma extensão do ICorProfilerCallback::RootReferences método.

Método ICorProfilerCallback2::SurvivingReferences

Notifica o criador de perfil sobre referências de objeto que tenha uma coleta de lixo sobrevividas.

Método ICorProfilerCallback2::ThreadNameChanged

Notifica o criador de perfil de código que o nome de um thread foi alterado.

Comentários

O CLR chama um método no ICorProfilerCallback (ou ICorProfilerCallback2) interface para notificar o criador de perfil quando um evento, que o criador de perfil tinha inscrito, ocorre. Essa é a interface de retorno de chamada principal através do 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 do ICorProfilerCallback interface. Para o .NET estrutura 2.0 e versões posteriores, o criador de perfil também deve implementar o ICorProfilerCallback2 métodos. Cada implementação do método deve retornar um HRESULT que tiver o valor S_OK no sucesso ou E_FAIL em caso de falha. Atualmente, o CLR ignora o HRESULT retornado por cada chamada de retorno, exceto ICorProfilerCallback::ObjectReferences.

Um criador de perfil de código deve registrar no registro do Microsoft Windows, seu objeto COM que implementa o ICorProfilerCallback e ICorProfilerCallback2 interfaces. Os eventos para o qual deseja receber uma notificação chamando assina um criador de perfil de códigoICorProfilerInfo::SetEventMask. Normalmente, isso é concluído na implementação do criador de perfil de ICorProfilerCallback::inicializar. O criador de perfil, em seguida, é capaz de receber notificação de tempo de execução quando um evento está prestes a ocorrer ou ocorreu apenas em um processo em execução do tempo de execução.

ObservaçãoObservação:

O criador de perfil registra um único objeto COM. Se o criador de perfil se destina a .NET estrutura versão 1 . 0 ou 1,1 , que o objeto COM apenas precisa implementam os métodos de ICorProfilerCallback. Se ele é objetivo .NET estrutura versão 2.0 e posterior, o objeto COM também deve implementar os métodos de ICorProfilerCallback2.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: CorProf.idl

Biblioteca: CorGuids.lib

.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface ICorProfilerCallback

Outros recursos

Interfaces de criação de perfil