IHostTaskManager::LeaveRuntime (Método)
Notifica al host que la tarea que se está ejecutando actualmente está a punto de salir de Common Language Runtime (CLR) y escribir código no administrado.
Importante
Una llamada correspondiente a IHostTaskManager::EnterRuntime notifica al host que la tarea que se está ejecutando actualmente vuelve a escribir código administrado.
Sintaxis
HRESULT LeaveRuntime (
[in] SIZE_T target
);
Parámetros
target
[in] Dirección en el archivo ejecutable portátil asignado de la función no administrada a la que se va a llamar.
Valor devuelto
HRESULT | Descripción |
---|---|
S_OK | LeaveRuntime se devolvió correctamente. |
HOST_E_CLRNOTAVAILABLE | Si se devuelve este valor, significa que Common Language Runtime (CLR) no se ha cargado en un proceso o se encuentra en un estado en el que no puede ejecutar código administrado ni procesar la llamada correctamente. |
HOST_E_TIMEOUT | Se agotó el tiempo de espera de la llamada. |
HOST_E_NOT_OWNER | El autor de la llamada no es el propietario del bloqueo. |
HOST_E_ABANDONED | Se canceló un evento mientras que una fibra o subproceso que estaba bloqueado lo estaba esperando. |
E_FAIL | Ocurrió un error grave desconocido. Si un método devuelve el valor E_FAIL, el CLR ya no se podrá usar en el proceso. Las llamadas que se hagan a los métodos de hospedaje posteriormente devolverán el valor HOST_E_CLRNOTAVAILABLE. |
E_OUTOFMEMORY | No hay memoria disponible suficiente para completar la asignación solicitada. |
Comentarios
Se pueden anidar secuencias de llamadas hacia el código no administrado y desde este. Por ejemplo, en la lista siguiente se describe una situación hipotética en la que la secuencia de llamadas a LeaveRuntime
, IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime y IHostTaskManager::EnterRuntime
permite al host identificar las capas anidadas.
Acción | Llamada de método correspondiente |
---|---|
Un ejecutable administrado de Visual Basic llama a una función no administrada escrita en C mediante la invocación de plataforma. | IHostTaskManager::LeaveRuntime |
La función de C no administrada llama a un método en un archivo DLL administrado escrito en C#. | IHostTaskManager::ReverseEnterRuntime |
La función administrada de C# llama a otra función no administrada escrita en C, también mediante la invocación de plataforma. | IHostTaskManager::LeaveRuntime |
La segunda función no administrada devuelve la ejecución a la función de C#. | IHostTaskManager::EnterRuntime |
La función de C# devuelve la ejecución a la primera función no administrada. | IHostTaskManager::ReverseLeaveRuntime |
La primera función no administrada devuelve la ejecución al programa de Visual Basic. | IHostTaskManager::EnterRuntime |
Requisitos
Plataformas: Vea Requisitos de sistema.
Encabezado: MSCorEE.h
Biblioteca: incluida como recurso en MSCorEE.dll
Versiones de .NET Framework: disponible a partir de la versión 2.0