Função FunctionLeave
Notifica o criador de perfil de que uma função está prestes a retornar ao chamador.
Observação
A função FunctionLeave
foi preterida no .NET Framework versão 2.0. Ela continuará funcionando, mas incorrerá em uma penalidade de desempenho. Em vez disso, use a função FunctionLeave2.
Sintaxe
void __stdcall FunctionLeave (
[in] FunctionID funcID
);
Parâmetros
funcID
[in] O identificador da função que está retornando.
Comentários
A função FunctionLeave
é um retorno de chamada e você deve implementá-la. A implementação precisa usar o atributo __declspec
(naked
) da classe de armazenamento.
O mecanismo de execução não salva nenhum registro antes de chamar essa função.
Na entrada, você precisa salvar todos os registros usados, incluindo aqueles na FPU (unidade de ponto flutuante).
Na saída, você deve restaurar a pilha removendo todos os parâmetros que foram enviados por push pelo chamador.
A implementação de FunctionLeave
não deve ser bloqueada porque atrasará a coleta de lixo. A implementação não deve tentar fazer uma coleta de lixo porque a pilha pode não estar em um estado adequado para a coleta de lixo. Se houver uma tentativa de coleta de lixo, o runtime será bloqueado até retornar FunctionLeave
.
Além disso, a função FunctionLeave
não deve chamar o código gerenciado ou de alguma forma causar uma alocação de memória gerenciada.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: CorProf.idl
Biblioteca: CorGuids.lib
Versões do .NET Framework: 1.1, 1.0