Função FunctionIDMapper
Notifica o criador de perfil que o identificador de determinada de uma função pode ser remapeado para uma ID alternativa a ser usado em retornos de chamada os enter2/leave2/tailcall2 para essa função. Esse método também permite que o criador de perfil 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 de função a ser remapeados.pbHookFunction
[out] Um ponteiro para um valor que define o criador de perfil para true Se ele deseja receber retornos de chamada enter(2)/leave(2)/tailcall(2); caso contrário, ele define esse valor como false.
Valor de retorno
O criador de perfil retorna um valor que o mecanismo de execução usa sistema autônomo um identificador de função alternativos. O valor retornado não pode ser nulo, a menos que false é retornado no *pbHookFunction. Caso contrário, um valor retornado nulo produzirá resultados imprevisíveis, incluindo possivelmente interromper o processo.
Comentários
The FunctionIDMapper função é um retorno de chamada. Ele é implementado pelo criador de perfil para remapear uma ID de função para Outros identificador mais útil para o criador de perfil. The FunctionIDMapper Retorna a ID alternativa a ser usado para qualquer função determinada. O mecanismo de execução, em seguida, respeita de solicitação o criador de perfil, passando esta identificação alternativa, junto com a ID de função tradicionais, para o criador de perfil no clientData parâmetro de ganchos enter2/leave2/tailcall2, 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 do FunctionIDMapper função. Você pode chamar o ICorProfilerInfo::SetFunctionIDMapper método apenas uma vez e nós recomendamos que você faça tão na ICorProfilerCallback::inicializarretorno de telefonar .
Por padrão, presume que um criador de perfil que define o sinalizar COR_PRF_MONITOR_ENTERLEAVE por usando ICorProfilerInfo::SetEventMaske que define conexões via ICorProfilerInfo::SetEnterLeaveFunctionHooks or ICorProfilerInfo2::SetEnterLeaveFunctionHooks2, deve receber os retornos de chamada enter(2)/leave(2)/tailcall(2) para cada função. No entanto, geradores de perfis podem implementar FunctionIDMapper Para evitar seletivamente o recebimento desses retornos de chamada para determinadas funções definindo *pbHookFunction para false.
Geradores de perfis devem ser tolerante a falhas de casos em que vários threads de um aplicativo perfilado estão chamando a mesma método/função simultaneamente. Em tais casos, o criador de perfil poderá receber várias FunctionIDMapper retornos de chamada para o mesmo FunctionID. O criador de perfil deve ser determinada retornar os mesmos valores desse retorno de chamada quando for chamado várias vezes com o mesmo FunctionID.
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, 1.1, 1.0
Consulte também
Referência
Método ICorProfilerInfo::SetFunctionIDMapper