Função de FunctionTailcall
Notifica o profiler para que a função atualmente em execução está prestes a realizar uma chamada de cauda para outra função.
Observação
O FunctionTailcall função é preterida na.NET Framework versão 2.0.Ele continuará a funcionar, mas incorrerá a penalidade de desempenho.Use o FunctionTailcall2 função em vez disso.
void __stdcall FunctionTailcall (
[in] FunctionID funcID
);
Parâmetros
- funcID
[in] O identificador da função atualmente em execução que está prestes a fazer um Laço de chamada.
Comentários
A função de destino da chamada de Laço usará o quadro de pilha atual e voltará diretamente para o chamador da função que fez a cauda de chamada. Isso significa que uma FunctionLeave retorno de chamada não será emitido para uma função que é o destino de uma chamada tail.
O FunctionTailcall função é um retorno de chamada; Você deve implementá-la. A implementação deve usar o __declspec(naked) atributo de classe de armazenamento.
O mecanismo de execução não salva qualquer registradores antes de chamar essa função.
Na entrada, você deve salvar todos os registros que você utiliza, incluindo aqueles na unidade de ponto flutuante (FPU).
Ao sair, você deve restaurar a pilha popping desativar todos os parâmetros que foram enviados pelo seu chamador.
A implementação de FunctionTailcall não deve bloquear porque ele atrasará a coleta de lixo. A implementação não deve tentar uma coleta de lixo, porque a pilha não pode estar em um estado de amigável de coleta de lixo. Se a tentativa de uma coleta de lixo, o tempo de execução será bloqueado até que FunctionTailcall retorna.
Além disso, o FunctionTailcall função não deve chamar código gerenciado ou em qualquer causa de forma uma alocação de memória gerenciada.
Requisitos
Plataformas: Consulte Requisitos de sistema do .NET Framework.
Cabeçalho: Corprof. idl
Biblioteca: CorGuids.lib
.NET Framework versões: 1.1, 1.0
Consulte também
Referência
Método de ICorProfilerInfo2::SetEnterLeaveFunctionHooks2
Outros recursos
A criação de perfil globais funções estáticas
Histórico de alterações
Date |
History |
Motivo |
---|---|---|
Outubro de 2010 |
Adicionado __stdcall a sintaxe. |
Comentários do cliente. |