Função FunctionEnter3WithInfo
Notifica o criador de perfil de que o controle está sendo passado para uma função e fornece um identificador que pode ser passado para o método ICorProfilerInfo3::GetFunctionEnter3Info para recuperar o registro de ativação e os argumentos de função.
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 controle é passado.
eltInfo
[in] Um identificador opaco que representa informações sobre um dado registro de ativação. Esse identificador é válido somente durante o retorno de chamada para o qual é transmitido.
Comentários
O método de retorno de chamada FunctionEnter3WithInfo
notifica o criador de perfil como as funções são chamadas e permite que ele use o método ICorProfilerInfo3::GetFunctionEnter3Info para inspecionar valores de argumento. Para acessar informações de argumento, o sinalizador COR_PRF_ENABLE_FUNCTION_ARGS
precisa ser definido. O criador de perfil pode usar o método ICorProfilerInfo::SetEventMask para definir os sinalizadores de evento e, em seguida, usar o método ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo para registrar sua implementação dessa função.
A função FunctionEnter3WithInfo
é 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 FunctionEnter3WithInfo
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 FunctionEnter3WithInfo
retorne.
A função FunctionEnter3WithInfo
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 2.0