Compartir a través de


FunctionTailcall3WithInfo (Función)

Notifica al generador de perfiles que la función que se ejecuta actualmente 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.

Sintaxis

void __stdcall FunctionTailcall3WithInfo(  
               [in] FunctionIDOrClientID functionIDOrClientID,  
               [in] COR_PRF_ELT_INFO eltInfo);  

Parámetros

functionIDOrClientID [in] El identificador de la función que se ejecuta actualmente y que está a punto de realizar una llamada de cola.

eltInfo [in] Controlador opaco que representa información sobre un marco de pila determinado. Este controlador es válido solo durante la devolución de llamada a la que se pasa.

Comentarios

El método de devolución de llamada FunctionTailcall3WithInfo envía una notificación al generador de perfiles cuando se llama a las funciones y le permite usar el método ICorProfilerInfo3::GetFunctionTailcall3Info para inspeccionar el marco de pila. Para acceder a la información del marco de pila, debe establecerse la marca COR_PRF_ENABLE_FRAME_INFO. El generador de perfiles puede usarse con el método ICorProfilerInfo::SetEventMask para establecer las marcas de evento y, después, con el método ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo para registrar la implementación de esta función.

La función FunctionTailcall3WithInfo es una devolución de llamada y, como tal, debe implementarse. La implementación debe usar el atributo __declspec(naked) de las clases de almacenamiento.

El motor de ejecución no guarda ningún registro antes de que se llame a esta función.

  • En el proceso de entrada de la función, deberá guardar todos los registros que use, incluidos los de la unidad de punto flotante (FPU).

  • En el proceso de salida, deberá quitar todos los parámetros que haya insertado su autor de la llamada para restaurar la pila.

La implementación de la función FunctionTailcall3WithInfo no debe bloquearse, ya que esto producirá retrasos en los procesos de recolección de elementos no utilizados. En la implementación, no deberá intentarse realizar un proceso de recolección de elementos no utilizados, ya que es posible que la pila esté en un estado en el que este no se pueda realizar. Si se intenta realizar un proceso de recolección de elementos no utilizados, el tiempo de ejecución se bloqueará hasta que se devuelva la función FunctionTailcall3WithInfo.

Además, la función FunctionTailcall3WithInfo no debe llamar al código administrado ni provocar una asignación de memoria administrada de ninguna manera.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: CorProf.idl

Biblioteca: CorGuids.lib

Versiones de .NET Framework: disponible a partir de la versión 2.0

Consulte también