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


Функция FunctionLeave

Уведомляет профилировщик о готовности функции к возврату значения вызывающему объекту.

ПримечаниеПримечание

Не рекомендуется использовать функцию FunctionLeave в .NET Framework 2.0.Хотя она и будет работать, ее использование приведет к снижению производительности.Вместо нее следует использовать функцию FunctionLeave2.

void __stdcall FunctionLeave (
    [in] FunctionID funcID
);

Параметры

  • funcID
    [in] Возвращаемый идентификатор функции.

Заметки

Функция FunctionLeave является функцией обратного вызова; ее следует реализовать. В реализации должен использоваться атрибут класса памяти __declspec(naked).

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

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

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

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

Кроме того, функция FunctionLeave не должна вызывать управляемый код или каким-либо образом инициировать управляемое распределение памяти.

Требования

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

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

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

Версии платформы .NET Framework: 1.1, 1.0

См. также

Ссылки

Функция FunctionEnter2

Функция FunctionLeave2

Функция FunctionTailcall2

Метод ICorProfilerInfo2::SetEnterLeaveFunctionHooks2

Другие ресурсы

Глобальные статические функции профилирования

Журнал изменений

Дата

Журнал

Причина

Октябрь 2010

__stdcall добавлен в синтаксис.

Обратная связь от клиента.