Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Уведомляет профилировщика о том, что элемент управления передается в функцию, и предоставляет сведения о кадре стека и аргументах функции. Эта функция заменяет функцию FunctionEnter .
Синтаксис
void __stdcall FunctionEnter2 (
[in] FunctionID funcId,
[in] UINT_PTR clientData,
[in] COR_PRF_FRAME_INFO func,
[in] COR_PRF_FUNCTION_ARGUMENT_INFO *argumentInfo
);
Параметры
funcId [in] Идентификатор функции, в которую передается элемент управления.
clientData [in] Идентификатор переназначенной функции, который профилировщик ранее указал с помощью функции FunctionIDMapper .
func [in] Значение COR_PRF_FRAME_INFO типа , указывающее сведения о кадре стека.
Профилировщик должен рассматривать его как непрозрачный дескриптор, который можно передать обратно в подсистему выполнения в методе ICorProfilerInfo2::GetFunctionInfo2 .
argumentInfo [in] Указатель на структуру COR_PRF_FUNCTION_ARGUMENT_INFO , указывающую расположения аргументов функции в памяти.
Чтобы получить доступ к сведениям о аргументах COR_PRF_ENABLE_FUNCTION_ARGS , необходимо установить флаг . Профилировщик может использовать метод ICorProfilerInfo::SetEventMask для установки флагов событий.
Комментарии
Значения func параметров и argumentInfo недопустимы после FunctionEnter2 возврата функцией, так как значения могут измениться или быть уничтожены.
Функция FunctionEnter2 является обратным вызовом; ее необходимо реализовать. Реализация должна использовать __declspecатрибут класса хранения (naked).
Подсистема выполнения не сохраняет регистры перед вызовом этой функции.
При записи необходимо сохранить все используемые регистры, включая регистры в единице с плавающей запятой (FPU).
При выходе необходимо восстановить стек, вырвав все параметры, которые были отправлены вызывающим элементом.
Реализация FunctionEnter2 не должна блокироваться, так как это приведет к задержке сборки мусора. Реализация не должна пытаться выполнить сборку мусора, так как стек может не находиться в состоянии, удобном для сборки мусора. При попытке сборки мусора среда выполнения будет блокироваться до тех пор, пока не FunctionEnter2 вернется.
Кроме того, FunctionEnter2 функция не должна вызывать в управляемый код или каким-либо образом вызывать выделение управляемой памяти.
Требования
Платформы: см. раздел Требования к системе.
Заголовка: CorProf.idl
Библиотека: CorGuids.lib
версии платформа .NET Framework: доступно с версии 2.0