Метод IHostTaskManager::LeaveRuntime
Обновлен: Ноябрь 2007
Уведомляет основное приложение о том, что выполняемая в настоящий момент задача собирается покинуть среду CLR и выполнить вход в неуправляемый код.
![]() |
---|
Соответствующий вызов метода IHostTaskManager::EnterRuntime уведомляет основное приложение о том, что выполняемая в настоящий момент задача повторно выполнила вход в управляемый код. |
HRESULT LeaveRuntime (
[in] SIZE_T target
);
Параметры
- target
[in] Адрес в сопоставленном переносимом исполняемом (PE) файле неуправляемой функции, которую необходимо выполнить.
Возвращаемое значение
HRESULT |
Описание |
---|---|
S_OK |
Метод LeaveRuntime успешно возвратил значение. |
HOST_E_CLRNOTAVAILABLE |
Среда CLR не загружена в процесс или находится в состоянии, в котором ей не удается выполнить управляемый код или успешно обработать вызов. |
HOST_E_TIMEOUT |
Время ожидания вызова истекло. |
HOST_E_NOT_OWNER |
Вызывающий объект не владеет блокировкой. |
HOST_E_ABANDONED |
Событие, которого ожидал заблокированный поток или нить, было отменено. |
E_FAIL |
Произошел неизвестный разрушительный сбой. Если метод вернет значение E_FAIL, среду CLR более нельзя будет использовать в данном процессе. Последующие вызовы методов размещения возвращают значение HOST_E_CLRNOTAVAILABLE. |
E_OUTOFMEMORY |
Недостаточно памяти для выделения запрашиваемого ее количества. |
Заметки
Последовательность вызовов в управляемом коде и из него может быть вложенной. Например, в приведенном ниже списке описывается гипотетическая ситуация, в которой последовательность вызовов методов LeaveRuntime, IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime и IHostTaskManager::EnterRuntime позволяет основному приложению определить вложенные уровни.
Действие |
Вызов соответствующего метода |
---|---|
Управляемый исполняемый файла на языке Visual Basic вызывает неуправляемую функцию, написанную на языке C, используя вызов неуправляемого кода. |
IHostTaskManager::LeaveRuntime |
Неуправляемая функция на языке C вызывает метод в управляемой библиотеке DLL, написанной на языке C#. |
IHostTaskManager::ReverseEnterRuntime |
Управляемая функция на языке C# вызывает другую неуправляемую функцию, написанную на языке C, также используя вызов неуправляемого кода. |
IHostTaskManager::LeaveRuntime |
Вторая неуправляемая функция возвращает исполняемую функцию на языке C#. |
IHostTaskManager::EnterRuntime |
Функция на языке C# возвращает результаты выполнения первой неуправляемой функции. |
IHostTaskManager::ReverseLeaveRuntime |
Первая неуправляемая функция возвращает результаты выполнения программе Visual Basic. |
IHostTaskManager::EnterRuntime |
Требования
Платформы: см. раздел Требования к системе для .NET Framework.
Заголовок: MSCorEE.idl
Библиотека: включена как ресурс в MSCorEE.dll
Версии платформы .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0