Methode IHostTaskManager::LeaveRuntime
Hiermee wordt de host gewaarschuwd dat de taak die momenteel wordt uitgevoerd, op het punt staat de COMMON Language Runtime (CLR) te verlaten en onbeheerde code in te voeren.
Belangrijk
Een bijbehorende aanroep van IHostTaskManager::EnterRuntime meldt de host dat de momenteel uitgevoerde taak beheerde code opnieuw invoert.
Syntaxis
HRESULT LeaveRuntime (
[in] SIZE_T target
);
Parameters
target
[in] Het adres in het toegewezen draagbare uitvoerbare bestand van de onbeheerde functie die moet worden aangeroepen.
Retourwaarde
HRESULT | Beschrijving |
---|---|
S_OK | LeaveRuntime is geretourneerd. |
HOST_E_CLRNOTAVAILABLE | De CLR is niet geladen in een proces of de CLR heeft een status waarin beheerde code niet kan worden uitgevoerd of de aanroep kan worden verwerkt. |
HOST_E_TIMEOUT | Er is een time-out opgetreden voor het gesprek. |
HOST_E_NOT_OWNER | De beller is niet de eigenaar van het slot. |
HOST_E_ABANDONED | Een gebeurtenis is geannuleerd terwijl er een geblokkeerde thread of glasvezel op wachtte. |
E_FAIL | Er is een onbekende catastrofale fout opgetreden. Wanneer een methode E_FAIL retourneert, is de CLR niet meer bruikbaar binnen het proces. Volgende aanroepen naar hostingmethoden retourneren HOST_E_CLRNOTAVAILABLE. |
E_OUTOFMEMORY | Er is onvoldoende geheugen beschikbaar om de aangevraagde toewijzing te voltooien. |
Opmerkingen
Oproepreeksen van en naar niet-beheerde code kunnen worden genest. In de onderstaande lijst wordt bijvoorbeeld een hypothetische situatie beschreven waarin de volgorde van aanroepen naar LeaveRuntime
, IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime, en IHostTaskManager::EnterRuntime
de host de geneste lagen kan identificeren.
Actie | Overeenkomende methode-aanroep |
---|---|
Een beheerd uitvoerbaar visual basic-bestand roept een onbeheerde functie aan die is geschreven in C met behulp van platformaanroep. | IHostTaskManager::LeaveRuntime |
De niet-beheerde C-functie roept een methode aan in een beheerde DLL die is geschreven in C#. | IHostTaskManager::ReverseEnterRuntime |
De beheerde C#-functie roept een andere onbeheerde functie aan die is geschreven in C, waarbij ook platform-aanroep wordt gebruikt. | IHostTaskManager::LeaveRuntime |
De tweede onbeheerde functie retourneert de uitvoering naar de C#-functie. | IHostTaskManager::EnterRuntime |
De C#-functie retourneert de uitvoering van de eerste onbeheerde functie. | IHostTaskManager::ReverseLeaveRuntime |
De eerste onbeheerde functie retourneert de uitvoering naar het Visual Basic-programma. | IHostTaskManager::EnterRuntime |
Vereisten
Platforms: Zie Systeemvereisten.
Header: MSCorEE.h
Bibliotheek: Opgenomen als een resource in MSCorEE.dll
.NET Framework versies: beschikbaar sinds 2.0