IHostTaskManager::LeaveRuntime, méthode
Avertit l’hôte que la tâche en cours d’exécution est sur le point de quitter le Common Language Runtime (CLR) et d’entrer dans du code non managé.
Important
Un appel correspondant à IHostTaskManager::EnterRuntime avertit l’hôte que la tâche en cours d’exécution entre à nouveau dans du code managé.
Syntaxe
HRESULT LeaveRuntime (
[in] SIZE_T target
);
Paramètres
target
[in] Adresse dans le fichier exécutable portable mappé de la fonction non managée à appeler.
Valeur de retour
HRESULT | Description |
---|---|
S_OK | LeaveRuntime retourné. |
HOST_E_CLRNOTAVAILABLE | Le CLR n’a pas été chargé dans un processus ou son état ne lui permet pas d’exécuter du code managé ni de traiter l’appel correctement. |
HOST_E_TIMEOUT | L’appel a expiré. |
HOST_E_NOT_OWNER | L’appelant n’est pas propriétaire du verrou. |
HOST_E_ABANDONED | Un événement a été annulé alors qu’un thread ou une fibre bloqué l’attendait. |
E_FAIL | Une défaillance catastrophique inconnue s’est produite. Quand une méthode retourne E_FAIL, le CLR n’est plus utilisable au sein du processus. Les appels suivants aux méthodes d’hébergement renvoient HOST_E_CLRNOTAVAILABLE. |
E_OUTOFMEMORY | La mémoire disponible est insuffisante pour effectuer l’allocation demandée. |
Notes
Les séquences d’appels à destination et en provenance du code non managé peuvent être imbriquées. Par exemple, la liste ci-dessous décrit une situation hypothétique dans laquelle la séquence d’appels à LeaveRuntime
, IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime et IHostTaskManager::EnterRuntime
permet à l’hôte d’identifier les couches imbriquées.
Action | Appel de méthode correspondant |
---|---|
Un exécutable Visual Basic managé appelle une fonction non managée écrite en C avec un appel de code non managé. | IHostTaskManager::LeaveRuntime |
La fonction C non managée appelle une méthode dans une DLL managée écrite en C#. | IHostTaskManager::ReverseEnterRuntime |
La fonction C# managée appelle une autre fonction non managée écrite en C, avec également un appel de code non managé. | IHostTaskManager::LeaveRuntime |
La deuxième fonction non managée retourne l’exécution à la fonction C#. | IHostTaskManager::EnterRuntime |
La fonction C# retourne l’exécution à la première fonction non managée. | IHostTaskManager::ReverseLeaveRuntime |
La première fonction non managée retourne l’exécution au programme Visual Basic. | IHostTaskManager::EnterRuntime |
Spécifications
Plateformes : Consultez Configuration requise.
En-tête : MSCorEE.h
Bibliothèque : incluse en tant que ressource dans MsCorEE.dll
Versions de .NET Framework : Disponible depuis la version 2.0