Функция FunctionEnter
Уведомляет профилировщик о передаче управления функции.
Примечание |
---|
Функцию FunctionEnter не рекомендуется использовать в платформе .NET Framework версии 2.0, ее применение может привести к снижению производительности.Вместо нее следует использовать функцию FunctionEnter2. |
void __stdcall FunctionEnter (
[in] FunctionID funcID
);
Параметры
- funcID
[in] Идентификатор функции, которому предается элемент управления.
Заметки
Функция FunctionEnter является функцией обратного вызова; ее следует реализовать. В реализации должен использоваться атрибут класса памяти __declspec(naked).
Перед вызовом этой функции ядро выполнения не сохраняет значения регистров.
При входе необходимо сохранить все используемые регистры, включая те, что находятся в блоке выполнения операций с плавающей запятой (FPU).
При выходе необходимо восстановить стек путем выталкивания из него всех параметров, помещенных туда вызывающим кодом.
Реализация функции FunctionEnter не должна осуществлять блокировку, поскольку это приведет к задержке сборки мусора. При реализации не следует предпринимать попытку сборки мусора, поскольку стек может находиться в состоянии, не поддерживающем этот процесс. Если предпринимается попытка выполнения сборки мусора, среда выполнения будет блокироваться до тех пор, пока функция FunctionEnter не возвратит значение.
Кроме того, функция FunctionEnter не должна вызывать управляемый код или каким-либо образом инициировать управляемое распределение памяти.
Требования
Платформы: см. раздел Требования к системе для .NET Framework.
Заголовок: CorProf.idl
Библиотека: CorGuids.lib
Версии платформы .NET Framework: 1.1, 1.0
См. также
Ссылки
Метод ICorProfilerInfo2::SetEnterLeaveFunctionHooks2
Другие ресурсы
Глобальные статические функции профилирования
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Октябрь 2010 |
__stdcall добавлен в синтаксис. |
Обратная связь от клиента. |