Partager via


ICLRMetaHost::RequestRuntimeLoadedNotification, méthode

Fournit une fonction de rappel dont l’appel est garanti quand une version du CLR (Common Language Runtime) est chargée pour la première fois, mais pas encore démarrée. Cette méthode remplace la fonction LockClrVersion.

Syntaxe

HRESULT RequestRuntimeLoadedNotification (  
    [in] RuntimeLoadedCallbackFnPtr pCallbackFunction);  

Paramètres

pCallbackFunction
[in] Fonction de rappel invoquée lors du chargement d’un nouveau runtime.

Valeur de retour

Cette méthode retourne les HRESULT spécifiques suivants ainsi que les erreurs HRESULT indiquant l'échec de la méthode.

HRESULT Description
S_OK La commande s'est correctement terminée.
E_POINTER pCallbackFunction a la valeur null.

Notes

Le rappel fonctionne de la façon suivante :

  • Le rappel est appelé uniquement lorsqu’un runtime est chargé pour la première fois.

  • Le rappel n’est pas invoqué pour des charges réentrantes du même runtime.

  • Pour des charges de runtime non réentrantes, les appels à la fonction de rappel sont sérialisés.

Le prototype de la fonction de rappel est le suivant :

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

Les prototypes de la fonction de rappel sont les suivants :

  • pfnCallbackThreadSet:

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

    typedef HRESULT (__stdcall *CallbackThreadUnsetFnPtr)();  
    

Si l’hôte envisage de charger ou de provoquer le chargement d’un autre runtime de manière réentrante, les paramètres pfnCallbackThreadSet et pfnCallbackThreadUnset qui sont fournis dans la fonction de rappel doivent être utilisés de la manière suivante :

  • La fonction pfnCallbackThreadSet doit être appelée par le thread susceptible d’entraîner un chargement de runtime avant qu’un tel chargement soit tenté.

  • La fonction pfnCallbackThreadUnset doit être appelée lorsque le thread n’entraîne plus un tel chargement de runtime (et avant de retourner à partir du rappel initial).

  • Les fonctions pfnCallbackThreadSet et pfnCallbackThreadUnset sont toutes deux non réentrantes.

Notes

Les applications hôtes ne doivent pas appeler pfnCallbackThreadSet et pfnCallbackThreadUnset en dehors de la portée du paramètre pCallbackFunction.

Spécifications

Plateformes : Consultez Configuration requise.

En-tête : MetaHost.h

Bibliothèque : incluse en tant que ressource dans MsCorEE.dll

Versions de .NET Framework : Disponibles depuis 4

Voir aussi