Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Notifica al generador de perfiles que el identificador especificado de una función puede reasignarse a otro identificador que se va a usar en las devoluciones de llamada FunctionEnter2, FunctionLeave2 y FunctionTailcall2 de esa función. FunctionIDMapper también permite al generador de perfiles indicar si se desea recibir devoluciones de llamada para esa función.
UINT_PTR __stdcall FunctionIDMapper (
[in] FunctionID funcId,
[out] BOOL *pbHookFunction
);
Parámetros
funcId
[in] Identificador de la función que se va a reasignar.pbHookFunction
[out] Puntero a un valor que el generador de perfiles establece en true si desea recibir devoluciones de llamada FunctionEnter2, FunctionLeave2 y FunctionTailcall2; de lo contrario, establece este valor en false.
Valor devuelto
El generador de perfiles devuelve un valor que el motor de ejecución utiliza como identificador de función alternativo. El valor devuelto no puede ser null a menos que se devuelva false en pbHookFunction. De lo contrario, la devolución de un valor nulo generará resultados imprevisibles, que posiblemente incluyan la detención del proceso.
Comentarios
La función FunctionIDMapper es una devolución de llamada. La implementa el generador de perfiles para reasignar un Id. de función a algún otro identificador que es más útil para el generador de perfil. FunctionIDMapper devuelve el Id. alternativo que se va a utilizar para cualquier función determinada. El motor de ejecución satisface a continuación la solicitud del generador de perfiles devolviendo al generador de perfiles este Id. alternativo, además del Id. de función tradicional, en el parámetro clientData de los enlaces FunctionEnter2, FunctionLeave2 y FunctionTailcall2, para identificar la función para la que se llama al enlace.
Puede utilizar el método ICorProfilerInfo::SetFunctionIDMapper para especificar la implementación de la función FunctionIDMapper. Solamente se puede llamar una vez al método ICorProfilerInfo::SetFunctionIDMapper y recomendamos que lo haga en la devolución de llamada ICorProfilerCallback::Initialize.
De forma predeterminada, se supone que un generador de perfiles que establece la marca COR_PRF_MONITOR_ENTERLEAVE utilizando ICorProfilerInfo::SetEventMask y que establece enlaces mediante ICorProfilerInfo::SetEnterLeaveFunctionHooks o ICorProfilerInfo2::SetEnterLeaveFunctionHooks2, debe recibir las devoluciones de llamada FunctionEnter2, FunctionLeave2 y FunctionTailcall2 para cada función. Sin embargo, los generadores de perfiles pueden implementar FunctionIDMapper para evitar selectivamente la recepción de estas devoluciones de llamada para ciertas funciones estableciendo pbHookFunction en false.
Los generadores de perfiles deben tolerar los casos en los que varios subprocesos de una aplicación de perfiles llamen al mismo método o función simultáneamente. En casos como éste, el generador de perfiles puede recibir varias devoluciones de llamada FunctionIDMapper para el mismo FunctionID. El generador de perfiles debe garantizar que se devuelvan los mismos valores de esta devolución de llamada cuando se llame varias veces con el mismo FunctionID.
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, 1.1, 1.0
Vea también
Referencia
ICorProfilerInfo::SetFunctionIDMapper (Método)