Partilhar via


Função FunctionIDMapper

Notifica o gerador de perfis de que o identificador especificado de uma função pode ser remapeado para um ID alternativo a ser utilizado nas chamadas de retorno FunctionEnter2, FunctionLeave2 e FunctionTailcall2 para essa função. FunctionIDMapper também permite que o gerador de perfis indique se quer receber chamadas de retorno para essa função.

Sintaxe

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

Parâmetros

funcId [in] O identificador de função a ser remapeado.

pbHookFunction [fora] Um ponteiro para um valor que o gerador de perfis define como true se pretende receber FunctionEnter2, FunctionLeave2e FunctionTailcall2 chamadas de retorno; caso contrário, define este valor como false.

Devolver Valor

O gerador de perfis devolve um valor que o motor de execução utiliza como identificador de função alternativo. O valor devolvido não pode ser nulo, a menos que false seja devolvido em pbHookFunction. Caso contrário, um valor devolvido nulo produzirá resultados imprevisíveis, incluindo possivelmente a suspensão do processo.

Observações

A FunctionIDMapper função é uma chamada de retorno. É implementado pelo gerador de perfis para remapear um ID de função para outro identificador que seja mais útil para o gerador de perfis. O FunctionIDMapper devolve o ID alternativo a ser utilizado para uma determinada função. Em seguida, o motor de execução honra o pedido do gerador de perfis ao transmitir este ID alternativo, para além do ID de função tradicional, de volta ao gerador de perfis no clientData parâmetro , FunctionEnter2FunctionLeave2e FunctionTailcall2 hooks, para identificar a função para a qual o gancho está a ser chamado.

Pode utilizar o método ICorProfilerInfo::SetFunctionIDMapper para especificar a implementação da FunctionIDMapper função. Pode chamar o ICorProfilerInfo::SetFunctionIDMapper método apenas uma vez e recomendamos que o faça na chamada de retorno ICorProfilerCallback::Initialize .

Por predefinição, assume-se que um gerador de perfis que define o sinalizador de COR_PRF_MONITOR_ENTERLEAVE utilizando ICorProfilerInfo::SetEventMask e que define hooks via ICorProfilerInfo::SetEnterLeaveFunctionHooks ou ICorProfilerInfo2::SetEnterLeaveFunctionHooks2, deve receber os FunctionEnter2FunctionLeave2, e FunctionTailcall2 as chamadas de retorno para cada função. No entanto, os perfis podem implementar FunctionIDMapper para evitar seletivamente receber estas chamadas de retorno para determinadas funções ao definir pbHookFunction como false.

Os geradores de perfis devem ser tolerantes a casos em que vários threads de uma aplicação com perfil chamam simultaneamente o mesmo método/função. Nesses casos, o gerador de perfis pode receber várias FunctionIDMapper chamadas de retorno para o mesmo FunctionID. O gerador de perfis deve ter a certeza de que devolve os mesmos valores desta chamada de retorno quando é chamado várias vezes com o mesmo FunctionID.

Requisitos

Plataformas: Veja Requisitos do Sistema.

Cabeçalho: CorProf.idl

Biblioteca: CorGuids.lib

.NET Framework Versões: Disponível desde 1.0

Ver também