Partager via


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

Voir aussi