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