Partager via


IHostTaskManager::LeaveRuntime, méthode

Avertit l'hôte que la tâche en cours d'exécution va quitter le Common Language Runtime (CLR) et entrer dans le code non managé.

Remarque importanteImportant

Un appel correspondant à IHostTaskManager::EnterRuntime avertit l'hôte que la tâche en cours d'exécution entre à nouveau dans le code managé.

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 a été retourné avec succès.

HOST_E_CLRNOTAVAILABLE

Le CLR n'a pas été chargé dans un processus ou le CLR présente un état dans lequel il ne peut pas exécuter de code managé ou traiter l'appel avec succès.

HOST_E_TIMEOUT

L'appel a expiré.

HOST_E_NOT_OWNER

L'appelant ne possède pas le verrou.

HOST_E_ABANDONED

Un événement a été annulé alors qu'un thread bloqué ou une fibre l'attendait.

E_FAIL

Une défaillance grave et inconnue s'est produite. Lorsqu'une méthode retourne E_FAIL, le CLR n'est plus utilisable dans le processus. Les appels suivants aux méthodes d'hébergement retournent HOST_E_CLRNOTAVAILABLE.

E_OUTOFMEMORY

Mémoire disponible insuffisante pour terminer l'allocation demandée.

Notes

Les séquences d'appel de et à 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 fichier exécutable managé Visual Basic appelle une fonction non managée écrite en C à l'aide de l'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, également à l'aide de l'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

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

En-tête : MSCorEE.h

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

Versions du .NET Framework : 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Voir aussi

Référence

ICLRTask, interface

ICLRTaskManager, interface

IHostTask, interface

IHostTaskManager, interface