Поделиться через


Функция FunctionLeave3

Уведомляет профилировщика о том, что элемент управления возвращается из функции.

Синтаксис

void __stdcall FunctionLeave3(FunctionOrRemappedID functionOrRemappedID);  

Параметры

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

Комментарии

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

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

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

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

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

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

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

Требования

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

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

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

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

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