Compartilhar via


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

Função FunctionEnter2

Função FunctionLeave2

Função FunctionTailcall2

Outros recursos

Criação de perfil global estático funções