Partilhar via


Função de FunctionIDMapper

Notifica o profiler para que o identificador especificado de uma função pode ser remapeado para uma identificação alternativa a ser usado na FunctionEnter2, FunctionLeave2, e FunctionTailcall2 retornos de chamada para essa função. FunctionIDMappertambém permite que o profiler indicar se deseja receber retornos de chamada para essa função.

UINT_PTR __stdcall FunctionIDMapper (
    [in]  FunctionID  funcId, 
    [out] BOOL       *pbHookFunction
);

Parâmetros

  • funcId
    [in] O identificador da função ser remapeados.

  • pbHookFunction
    [out] Um ponteiro para um valor que define o profiler true se deseja receber FunctionEnter2, FunctionLeave2, e FunctionTailcall2 retornos de chamada; Caso contrário, ele define esse valor como false.

Valor de retorno

O profiler retorna um valor que o mecanismo de execução usa como um identificador de função alternativos. O valor de retorno não pode ser nulo, a menos que false é retornado em pbHookFunction. Caso contrário, um valor de retorno nulo produzirá resultados imprevisíveis, incluindo possivelmente interromper o processo.

Comentários

O FunctionIDMapper função é chamada de retorno. Ele é implementado pelo profiler para remapear um ID de função para outro identificador que é mais útil para o profiler. O FunctionIDMapper retorna a ID alternativa a ser usado para qualquer função determinada. O mecanismo de execução, em seguida, homenageia a solicitação do profiler, passando a essa identificação de alternativa, além da ID de função tradicional, volta para o criador de perfil do clientData parâmetro da FunctionEnter2, FunctionLeave2, e FunctionTailcall2 ganchos, para identificar a função para o qual o gancho está sendo chamado.

Você pode usar o ICorProfilerInfo::SetFunctionIDMapper método para especificar a implementação de FunctionIDMapper função. Você pode chamar o ICorProfilerInfo::SetFunctionIDMapper método apenas uma vez e podemos recomendar fazer assim, o ICorProfilerCallback::Initialize retorno de chamada.

Por padrão, ele presume que um gerador de perfil que define o sinalizador COR_PRF_MONITOR_ENTERLEAVE usando ICorProfilerInfo::SetEventMask, e que define os ganchos via ICorProfilerInfo::SetEnterLeaveFunctionHooks ou ICorProfilerInfo2::SetEnterLeaveFunctionHooks2, deve receber o FunctionEnter2, FunctionLeave2, e FunctionTailcall2 retornos de chamada para cada função. No entanto, os criadores de perfis podem implementar FunctionIDMapper para evitar seletivamente a receber esses retornos de chamada para determinadas funções, definindo pbHookFunction para false.

Geradores de perfis devem ser tolerante a falhas de casos onde vários segmentos de um aplicativo perfilado estão chamando o método mesma-função simultaneamente. Em tais casos, o profiler pode receber vários FunctionIDMapper retornos de chamada para o mesmo FunctionID. O profiler deve ter certeza de retornar os mesmos valores desse retorno de chamada, quando for chamado várias vezes com o mesmo FunctionID.

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: Corprof. idl

Biblioteca: CorGuids.lib

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Consulte também

Referência

Método de ICorProfilerInfo::SetFunctionIDMapper

Função de FunctionIDMapper2

Função de FunctionEnter2

Função de FunctionLeave2

Função de FunctionTailcall2

Outros recursos

A criação de perfil globais funções estáticas