Compartir a través de


ICLRMetaHost::RequestRuntimeLoadedNotification (Método)

Proporciona una función de devolución de llamada a la que se garantiza que se llama cuando se carga por primera vez una versión de Common Language Runtime (CLR), pero aún no se ha iniciado. Este método sustituye a la función LockClrVersion.

Sintaxis

HRESULT RequestRuntimeLoadedNotification (  
    [in] RuntimeLoadedCallbackFnPtr pCallbackFunction);  

Parámetros

pCallbackFunction
[in] Función de devolución de llamada que se invoca cuando se ha cargado un runtime.

Valor devuelto

Este método devuelve los siguientes HRESULT específicos y los errores HRESULT que indican un error del método.

HRESULT Descripción
S_OK El método se completó correctamente.
E_POINTER pCallbackFunction es null.

Comentarios

La devolución de llamada funciona de la siguiente manera:

  • La devolución de llamada se invoca solo cuando se carga un runtime por primera vez.

  • La devolución de llamada no se invoca para cargas reentrantes del mismo runtime.

  • Para cargas de runtime no reentrantes, se serializan las llamadas a la función de devolución de llamada.

La función de devolución de llamada cuenta con el prototipo siguiente:

typedef void (__stdcall *RuntimeLoadedCallbackFnPtr)(  
                     ICLRRuntimeInfo *pRuntimeInfo,  
                     CallbackThreadSetFnPtr pfnCallbackThreadSet,  
                     CallbackThreadUnsetFnPtr pfnCallbackThreadUnset);  

Los prototipos de la función de devolución de llamada son los siguientes.

  • pfnCallbackThreadSet:

    typedef HRESULT (__stdcall *CallbackThreadSetFnPtr)();  
    
  • pfnCallbackThreadUnset:

    typedef HRESULT (__stdcall *CallbackThreadUnsetFnPtr)();  
    

Si el host pretende cargar o hacer que otro runtime se cargue de forma reentrante, los parámetros pfnCallbackThreadSet y pfnCallbackThreadUnset que se proporcionan en la función de devolución de llamada se deben usar de la siguiente manera:

  • El subproceso que puede provocar una carga en tiempo de ejecución debe llamar a pfnCallbackThreadSet antes de que se intente dicha carga.

  • Se debe llamar a pfnCallbackThreadUnset cuando el subproceso ya no provoque dicha carga en tiempo de ejecución (y antes de volver de la devolución de llamada inicial).

  • Tanto pfnCallbackThreadSet como pfnCallbackThreadUnset no son reentrantes.

Nota

Las aplicaciones host no deben llamar a pfnCallbackThreadSet ni a pfnCallbackThreadUnset fuera del ámbito del parámetro pCallbackFunction.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: MetaHost.h

Biblioteca: incluida como recurso en MSCorEE.dll

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

Consulte también