Функция FunctionEnter3WithInfo

Уведомляет профилировщика о том, что элемент управления передается в функцию, и предоставляет дескриптор, который может быть передан методу ICorProfilerInfo3::GetFunctionEnter3Info для получения кадра стека и аргументов функции.

Синтаксис

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

Параметры

functionIDOrClientID [in] Идентификатор функции, в которую передается элемент управления.

eltInfo [in] Непрозрачный дескриптор, представляющий сведения о заданном кадре стека. Этот дескриптор действителен только во время обратного вызова, которому он передается.

Комментарии

Метод обратного FunctionEnter3WithInfo вызова уведомляет профилировщик при вызове функций и позволяет профилировщику использовать метод ICorProfilerInfo3::GetFunctionEnter3Info для проверки значений аргументов. Чтобы получить доступ к сведениям о аргументах COR_PRF_ENABLE_FUNCTION_ARGS , необходимо установить флаг . Профилировщик может использовать метод ICorProfilerInfo::SetEventMask для задания флагов событий, а затем использовать метод ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo для регистрации реализации этой функции.

Функция FunctionEnter3WithInfo является обратным вызовом; ее необходимо реализовать. Реализация должна использовать __declspec(naked) атрибут класса хранения.

Подсистема выполнения не сохраняет регистры перед вызовом этой функции.

  • При записи необходимо сохранить все регистры, которые вы используете, включая регистры в единице С плавающей запятой (FPU).

  • При выходе необходимо восстановить стек, вырвав все параметры, которые были отправлены вызывающим элементом.

Реализация FunctionEnter3WithInfo не должна блокироваться, так как это приведет к задержке сборки мусора. Реализация не должна пытаться выполнить сборку мусора, так как стек может не находиться в состоянии, удобном для сборки мусора. При попытке сборки мусора среда выполнения будет блокироваться до возврата FunctionEnter3WithInfo .

Функция FunctionEnter3WithInfo не должна вызывать управляемый код или каким-либо образом вызывать выделение управляемой памяти.

Требования

Платформы: см. раздел Требования к системе.

Заголовка: CorProf.idl

Библиотека: CorGuids.lib

версии платформа .NET Framework: доступно с версии 2.0.

См. также раздел