FunctionTailcall3WithInfo (Función)
Notifica al generador de perfiles que la función que se está ejecutando está a punto de realizar una llamada de cola a otra función y proporciona un identificador que se puede pasar al método ICorProfilerInfo3::GetFunctionTailcall3Info para recuperar el marco de pila.
void __stdcall FunctionTailcall3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
Parámetros
functionIDOrClientID
[in] Identificador de la función que se está ejecutando y que está a punto de hacer una llamada de cola.eltInfo
[in] Identificador opaco que representa información acerca de un marco de pila especificado. Este identificador solo es válido durante la devolución de llamada a la que se pasa.
Comentarios
El método de devolución de llamada FunctionTailcall3WithInfo notifica al generador de perfiles cuando se llama a las funciones, y permite al generador de perfiles usar el método ICorProfilerInfo3::GetFunctionTailcall3Info para inspeccionar el marco de pila. Para tener acceso a la información del marco de pila, se debe establecer la marca COR_PRF_ENABLE_FRAME_INFO. El generador de perfiles puede usar el método ICorProfilerInfo::SetEventMask para establecer las marcas de evento y, a continuación, usar el método ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo para registrar su implementación de esta función.
La función FunctionTailcall3WithInfo es una devolución de llamada; debe implementarla. La implementación debe utilizar el atributo de clase de almacenamiento __declspec(naked).
El motor de ejecución no guarda ningún registro antes de llamar a esta función.
En la entrada, debe guardar todos los registros que utilice, incluidos los de la unidad de punto flotante (FPU).
Al salir, debe restablecer la pila desactivando todos los parámetros insertados por el llamador.
La implementación de FunctionTailcall3WithInfo no debe bloquearse porque retrasaría la recolección de elementos no utilizados. La implementación no debería intentar realizar la recolección de elementos no utilizados porque es posible que la pila no esté en un estado adecuado para ello. Si se intenta realizar una recolección de elementos no utilizados, el motor en tiempo de ejecución se bloqueará hasta que se devuelva FunctionTailcall3WithInfo
Asimismo, la función FunctionTailcall3WithInfo no debe llamar a código administrado ni provocar de ninguna forma una asignación de memoria administrada.
Requisitos
Plataformas: vea Requisitos de sistema de .NET Framework.
Encabezado: CorProf.idl
Biblioteca: CorGuids.lib
Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0
Vea también
Referencia
SetEnterLeaveFunctionHooks3WithInfo
Otros recursos
Funciones estáticas globales para generación de perfiles
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Octubre de 2010 |
Se agregó __stdcall a la sintaxis. |
Comentarios de los clientes. |