Função FunctionTailcall
Notifica o gerador de perfis de que a função atualmente em execução está prestes a executar uma chamada de cauda para outra função.
Nota
A FunctionTailcall
função foi preterida no .NET Framework versão 2.0. Continuará a funcionar, mas implicará uma penalização de desempenho. Em alternativa, utilize a função FunctionTailcall2 .
Sintaxe
void __stdcall FunctionTailcall (
[in] FunctionID funcID
);
Parâmetros
funcID
[in] O identificador da função atualmente em execução que está prestes a fazer uma chamada de cauda.
Observações
A função de destino da chamada de cauda utilizará a moldura de pilha atual e regressará diretamente ao chamador da função que efetuou a chamada de cauda. Isto significa que não será emitida uma chamada de retorno FunctionLeave para uma função que seja o destino de uma chamada de cauda.
A FunctionTailcall
função é uma chamada de retorno; tem de implementá-la. A implementação tem de utilizar o __declspec
atributo da classe de armazenamento (naked
).
O motor de execução não guarda quaisquer registos antes de chamar esta função.
À entrada, tem de guardar todos os registos que utiliza, incluindo os da unidade de vírgula flutuante (FPU).
Ao sair, tem de restaurar a pilha ao retirar todos os parâmetros que foram emitidos pelo autor da chamada.
A implementação de FunctionTailcall
não deve bloquear porque atrasará a libertação da memória. A implementação não deve tentar uma libertação da memória porque a pilha pode não estar num estado amigável de libertação da memória. Se for tentada uma libertação da memória, o runtime bloqueará até FunctionTailcall
ser devolvido.
Além disso, a FunctionTailcall
função não pode chamar para código gerido ou, de qualquer forma, causar uma alocação de memória gerida.
Requisitos
Plataformas: Veja Requisitos de Sistema.
Cabeçalho: CorProf.idl
Biblioteca: CorGuids.lib
.NET Framework Versões: 1.1, 1.0