Функция FunctionTailcall3
Уведомляет профилировщика о том, что выполняющаяся в данный момент функция выполняет вызов хвоста к другой функции.
Синтаксис
void __stdcall FunctionTailcall3 (FunctionOrRemappedID functionOrRemappedID);
Параметры
functionOrRemappedID
[in] Идентификатор выполняющейся в данный момент функции, которая будет выполнять вызов tail.
Комментарии
Функция FunctionTailcall3
обратного вызова уведомляет профилировщик при вызове функций. Используйте метод ICorProfilerInfo3::SetEnterLeaveFunctionHooks3 , чтобы зарегистрировать реализацию этой функции.
Функция FunctionTailcall3
является обратным вызовом; ее необходимо реализовать. Реализация должна использовать __declspec(naked)
атрибут класса хранения.
Подсистема выполнения не сохраняет регистры перед вызовом этой функции.
При записи необходимо сохранить все используемые регистры, включая регистры в единице с плавающей запятой (FPU).
При выходе необходимо восстановить стек, вырвав все параметры, которые были отправлены вызывающим элементом.
Реализация FunctionTailcall3
не должна блокироваться, так как это приведет к задержке сборки мусора. Реализация не должна пытаться выполнить сборку мусора, так как стек может не находиться в удобном для сборки мусора состоянии. При попытке сборки мусора среда выполнения будет блокироваться до тех пор, пока не FunctionTailcall3
вернется.
Функция FunctionTailcall3
не должна вызывать управляемый код или вызывать выделение управляемой памяти каким-либо образом.
Требования
Платформы: см. раздел Требования к системе.
Заголовка: CorProf.idl
Библиотека: CorGuids.lib
версии платформа .NET Framework: доступно с 4