Compartilhar via


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

Função de FunctionEnter2

Função de FunctionLeave2

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.