IHostTaskManager::LeaveRuntime — Metoda
Powiadamia hosta, że aktualnie wykonywane zadanie ma opuścić środowisko uruchomieniowe języka wspólnego (CLR) i wprowadzić niezarządzany kod.
Ważne
Odpowiednie wywołanie elementu IHostTaskManager::EnterRuntime powiadamia hosta, że aktualnie wykonywane zadanie ponownie wprowadza kod zarządzany.
Składnia
HRESULT LeaveRuntime (
[in] SIZE_T target
);
Parametry
target
[in] Adres w zamapowanym przenośnym pliku wykonywalnego niezarządzanej funkcji do wywołania.
Wartość zwracana
HRESULT | Opis |
---|---|
S_OK | LeaveRuntime zwrócone pomyślnie. |
HOST_E_CLRNOTAVAILABLE | ClR nie został załadowany do procesu lub CLR jest w stanie, w którym nie może uruchomić zarządzanego kodu lub przetworzyć wywołania pomyślnie. |
HOST_E_TIMEOUT | Upłynął limit czasu wywołania. |
HOST_E_NOT_OWNER | Obiekt wywołujący nie jest właścicielem blokady. |
HOST_E_ABANDONED | Zdarzenie zostało anulowane, gdy zablokowany wątek lub światłowod czekał na nie. |
E_FAIL | Wystąpił nieznany katastrofalny błąd. Gdy metoda zwraca E_FAIL, clR nie będzie już można jej używać w ramach tego procesu. Kolejne wywołania metod hostingu zwracają HOST_E_CLRNOTAVAILABLE. |
E_OUTOFMEMORY | Za mało pamięci, aby ukończyć żądaną alokację. |
Uwagi
Sekwencje wywołań do i z niezarządzanego kodu można zagnieżdżać. Na przykład poniższa lista opisuje hipotetyczną sytuację, w której sekwencja wywołań do LeaveRuntime
elementu , IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime i IHostTaskManager::EnterRuntime
umożliwia hostowi zidentyfikowanie zagnieżdżonych warstw.
Akcja | Odpowiednie wywołanie metody |
---|---|
Zarządzany plik wykonywalny języka Visual Basic wywołuje niezarządzaną funkcję napisaną w języku C przy użyciu wywołania platformy. | IHostTaskManager::LeaveRuntime |
Niezarządzana funkcja języka C wywołuje metodę w zarządzanej bibliotece DLL napisanej w języku C#. | IHostTaskManager::ReverseEnterRuntime |
Zarządzana funkcja języka C# wywołuje inną niezarządzaną funkcję napisaną w języku C, również przy użyciu wywołania platformy. | IHostTaskManager::LeaveRuntime |
Druga niezarządzana funkcja zwraca wykonanie do funkcji języka C#. | IHostTaskManager::EnterRuntime |
Funkcja języka C# zwraca wykonywanie do pierwszej niezarządzanej funkcji. | IHostTaskManager::ReverseLeaveRuntime |
Pierwsza niezarządzana funkcja zwraca wykonanie do programu Visual Basic. | IHostTaskManager::EnterRuntime |
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: MSCorEE.h
Biblioteki: Uwzględnione jako zasób w MSCorEE.dll
wersje .NET Framework: dostępne od wersji 2.0