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.
Actualización: noviembre 2007
Proporciona métodos que Common Language Runtime (CLR) utiliza para notificar a un generador de perfiles del código cuándo se producen los eventos a los que está suscrito. La interfaz ICorProfilerCallback2 es una extensión de la interfaz ICorProfilerCallback. Es decir, proporciona nuevas devoluciones de llamada introducidas en .NET Framework 2.0.
Nota
Cada implementación de método debe devolver un valor de HRESULT que sea S_OK si todo es correcto o E_FAIL en caso de error. Actualmente, CLR omite el valor de HRESULT devuelto por cada devolución de llamada, excepto ICorProfilerCallback::ObjectReferences.
interface ICorProfilerCallback2 : ICorProfilerCallback
{
HRESULT ThreadNameChanged(
[in] ThreadID threadId,
[in] ULONG cchName,
[in] WCHAR name[]);
HRESULT GarbageCollectionStarted(
[in] int cGenerations,
[in, size_is(cGenerations), length_is(cGenerations)] BOOL generationCollected[],
[in] COR_PRF_GC_REASON reason);
HRESULT SurvivingReferences(
[in] ULONG cSurvivingObjectIDRanges,
[in, size_is(cSurvivingObjectIDRanges)] ObjectID objectIDRangeStart[] ,
[in, size_is(cSurvivingObjectIDRanges)] ULONG cObjectIDRangeLength[] );
HRESULT GarbageCollectionFinished();
HRESULT FinalizeableObjectQueued(
[in] DWORD finalizerFlags,
[in] ObjectID objectID);
HRESULT RootReferences2(
[in] ULONG cRootRefs,
[in, size_is(cRootRefs)] ObjectID rootRefIds[],
[in, size_is(cRootRefs)] COR_PRF_GC_ROOT_KIND rootKinds[],
[in, size_is(cRootRefs)] COR_PRF_GC_ROOT_FLAGS rootFlags[],
[in, size_is(cRootRefs)] UINT_PTR rootIds[]);
HRESULT HandleCreated(
[in] GCHandleID handleId,
[in] ObjectID initialObjectId);
HRESULT HandleDestroyed(
[in] GCHandleID handleId);
}
Métodos
Método |
Descripción |
|---|---|
Notifica al analizador de código que un objeto con un finalizador se ha puesto en cola en el subproceso finalizador para la ejecución de su método Finalize. |
|
Notifica al generador de perfiles que una recolección de elementos no utilizados ha finalizado y que se han emitido para él todas las devoluciones de llamada de la recolección de elementos no utilizados. |
|
Notifica al analizador de código que ha comenzado una recolección de elementos no utilizados. |
|
Notifica al generador de perfiles de código que se ha creado un identificador de recolección de elementos no utilizados. |
|
Notifica al analizador de código que se ha destruido un identificador de recolección de elementos no utilizados. |
|
Informa al generador de perfiles sobre las referencias de raíz tras una recolección de elementos no utilizados. Este método es una extensión del método ICorProfilerCallback::RootReferences. |
|
Notifica al generador de perfiles las referencias a objeto que han sobrevivido a una recolección de elementos no utilizados. |
|
Notifica al analizador de código que ha cambiado el nombre de un subproceso. |
Comentarios
CLR llama a un método de la interfaz ICorProfilerCallback (o ICorProfilerCallback2) para notificar al generador de perfiles cuándo se produce un evento al que está suscrito. Esta es la interfaz de devolución de llamada principal a través de la que se comunica CLR con el analizador de código.
Un analizador de código debe implementar los métodos de la interfaz ICorProfilerCallback. En .NET Framework 2.0 y versiones posteriores, el generador de perfiles también debe implementar los métodos ICorProfilerCallback2. Cada implementación de método debe devolver un valor de HRESULT que sea S_OK si todo es correcto o E_FAIL en caso de error. Actualmente, CLR omite el valor de HRESULT devuelto por cada devolución de llamada, excepto ICorProfilerCallback::ObjectReferences.
Un generador de perfiles del código debe registrar en el Registro de Microsoft Windows el objeto COM que implementa las interfaces ICorProfilerCallback e ICorProfilerCallback2. Un generador de perfiles del código se suscribe a los eventos de los que desea recibir notificación mediante una llamada a ICorProfilerInfo::SetEventMask. Esto normalmente tiene lugar en la implementación de ICorProfilerCallback::Initialize del generador de perfiles. Después, el generador de perfiles podrá recibir una notificación del motor en tiempo de ejecución cuando esté a punto de producirse un evento o cuando éste acabe de producirse en un proceso del motor en tiempo de ejecución que se esté ejecutando.
Nota
El generador de perfiles registra un solo objeto COM. Si el generador de perfiles tiene como destino .NET Framework 1.0 o 1.1, el objeto COM sólo necesita implementar los métodos de ICorProfilerCallback. Si tiene como destino .NET Framework 2.0 y versiones posteriores, el objeto COM debe implementar también los métodos de ICorProfilerCallback2.
Requisitos
Plataformas: vea Requisitos de sistema de .NET Framework.
Encabezado: CorProf.idl
Biblioteca: CorGuids.lib
.NET Framework, versiones: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0