Функция 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

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