Teilen über


IHostTaskManager::LeaveRuntime-Methode

Benachrichtigt den Host, dass die aktuell ausgeführte Aufgabe im Begriff ist, die Common Language Runtime (CLR) zu verlassen und in nicht verwalteten Code zu wechseln.

Wichtig

Ein entsprechender Aufruf von IHostTaskManager::EnterRuntime benachrichtigt den Host, dass die aktuell ausgeführte Aufgabe wieder in den verwalteten Code wechselt.

Syntax

HRESULT LeaveRuntime (  
    [in] SIZE_T target  
);  

Parameter

target
[in] Die Adresse der aufzurufenden nicht verwalteten Funktion in der zugeordneten portablen ausführbaren Datei.

Rückgabewert

HRESULT BESCHREIBUNG
S_OK LeaveRuntime wurde erfolgreich zurückgegeben.
HOST_E_CLRNOTAVAILABLE Die CLR wurde nicht in einen Prozess geladen, oder die CLR befindet sich in einem Zustand, in dem sie keinen verwalteten Code ausführen oder den Aufruf nicht erfolgreich verarbeiten kann.
HOST_E_TIMEOUT Timeout des Aufrufs.
HOST_E_NOT_OWNER Der Aufrufer besitzt die Sperre nicht.
HOST_E_ABANDONED Ein Ereignis wurde abgebrochen, während ein blockierter Thread oder eine blockierte Fiber darauf gewartet hat.
E_FAIL Es ist ein unbekannter katastrophaler Fehler aufgetreten. Wenn eine Methode E_FAIL zurückgibt, kann die CLR nicht mehr innerhalb des Prozesses verwendet werden. Nachfolgende Aufrufe von Hostingmethoden geben HOST_E_CLRNOTAVAILABLE zurück.
E_OUTOFMEMORY Es ist nicht genügend Arbeitsspeicher verfügbar, um die angeforderte Zuordnung abzuschließen.

Bemerkungen

Aufrufsequenzen an und von nicht verwaltetem Code können geschachtelt werden. In der folgenden Liste ist z. B. eine hypothetische Situation beschrieben, in der die Abfolge der Aufrufe LeaveRuntime, IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime und IHostTaskManager::EnterRuntime es dem Host ermöglicht, die geschachtelten Ebenen zu identifizieren.

Aktion Entsprechender Methodenaufruf
Eine verwaltete ausführbare Visual Basic-Datei ruft mithilfe eines Plattformaufrufs eine nicht verwaltete, in C geschriebene Funktion auf. IHostTaskManager::LeaveRuntime
Die nicht verwaltete C-Funktion ruft eine Methode in einer verwalteten DLL auf, die in C# geschrieben wurde. IHostTaskManager::ReverseEnterRuntime
Die verwaltete C#-Funktion ruft eine andere nicht verwaltete Funktion in C auf, die ebenfalls den Plattformaufruf verwendet. IHostTaskManager::LeaveRuntime
Die zweite nicht verwaltete Funktion gibt die Ausführung an die C#-Funktion zurück. IHostTaskManager::EnterRuntime
Die C#-Funktion gibt die Ausführung an die erste nicht verwaltete Funktion zurück. IHostTaskManager::ReverseLeaveRuntime
Die erste nicht verwaltete Funktion gibt die Ausführung an das Visual Basic-Programm zurück. IHostTaskManager::EnterRuntime

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: MSCorEE.h

Bibliothek: Als Ressource in „MsCorEE.dll“ enthalten.

.NET Framework-Versionen: Seit 2.0 verfügbar.

Siehe auch