Partilhar via


Função FunctionEnter3WithInfo

Notifica o gerador de perfis de que o controlo está a ser transmitido para uma função e fornece um identificador que pode ser transmitido para o método ICorProfilerInfo3::GetFunctionEnter3Info para obter os argumentos da moldura e da função da pilha.

Sintaxe

void __stdcall FunctionEnter3WithInfo(  
               [in] FunctionIDOrClientID functionIDOrClientID,  
               [in] COR_PRF_ELT_INFO eltInfo);  

Parâmetros

functionIDOrClientID [in] O identificador da função para a qual o controlo é transmitido.

eltInfo [in] Uma alça opaca que representa informações sobre uma determinada moldura de pilha. Esta alça só é válida durante a chamada de retorno para a qual é transmitida.

Observações

O FunctionEnter3WithInfo método de chamada de retorno notifica o gerador de perfis como as funções são chamadas e permite que o gerador de perfis utilize o método ICorProfilerInfo3::GetFunctionEnter3Info para inspecionar os valores dos argumentos. Para aceder às informações do argumento, o COR_PRF_ENABLE_FUNCTION_ARGS sinalizador tem de ser definido. O gerador de perfis pode utilizar o método ICorProfilerInfo::SetEventMask para definir os sinalizadores de eventos e, em seguida, utilizar o método ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo para registar a implementação desta função.

A FunctionEnter3WithInfo função é uma chamada de retorno; tem de implementá-la. A implementação tem de utilizar o __declspec(naked) atributo de classe de armazenamento.

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 FunctionEnter3WithInfo não deve bloquear, uma vez que 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é FunctionEnter3WithInfo ser devolvido.

A FunctionEnter3WithInfo função não pode chamar o código gerido nem causar uma alocação de memória gerida de qualquer forma.

Requisitos

Plataformas: Veja Requisitos de Sistema.

Cabeçalho: CorProf.idl

Biblioteca: CorGuids.lib

.NET Framework Versões: Disponível desde 2.0

Ver também