Compartilhar via


Função FunctionLeave3

Notifica o criador de perfil de que o controle está sendo retornado de uma função.

Sintaxe

void __stdcall FunctionLeave3(FunctionOrRemappedID functionOrRemappedID);  

Parâmetros

functionOrRemappedID [in] O identificador da função da qual o controle é retornado.

Comentários

A função de retorno de chamada FunctionLeave3 notifica o criador de perfil como as funções estão sendo chamadas, mas não dá suporte à inspeção de valor retornado. Use o método ICorProfilerInfo3::SetEnterLeaveFunctionHooks3 para registrar sua implementação dessa função.

A função FunctionLeave3 é 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 FunctionLeave3 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 isso. Se houver uma tentativa de coleta de lixo, o runtime será bloqueado até que FunctionLeave3 retorne.

A função FunctionLeave3 não pode chamar o código gerenciado ou causar uma alocação de memória gerenciada de nenhuma maneira.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: CorProf.idl

Biblioteca: CorGuids.lib

Versões do .NET Framework: disponíveis desde 4

Confira também