Compartilhar via


Método IHostTaskManager::LeaveRuntime

Notifica o host de que a tarefa atualmente em execução está prestes a sair do Common Language Runtime (CLR) e inserir código não gerenciado.

Importante

Uma chamada correspondente para IHostTaskManager::EnterRuntime notifica o host de que a tarefa atualmente em execução está reinserindo o código gerenciado.

Sintaxe

HRESULT LeaveRuntime (  
    [in] SIZE_T target  
);  

Parâmetros

target
[in] O endereço dentro do arquivo executável portátil mapeado da função não gerenciada a ser chamada.

Valor Retornado

HRESULT Descrição
S_OK LeaveRuntime retornado com êxito.
HOST_E_CLRNOTAVAILABLE O CLR não foi carregado em um processo, ou o CLR está em um estado no qual não pode executar código gerenciado ou processar a chamada com êxito.
HOST_E_TIMEOUT Uma chamada atingiu o tempo limite.
HOST_E_NOT_OWNER O chamador não possui o bloqueio.
HOST_E_ABANDONED Um evento foi cancelado enquanto uma fibra ou um thread bloqueado estava esperando por ele.
E_FAIL Uma falha catastrófica desconhecida ocorreu. Quando um método retorna E_FAIL, o CLR não pode mais ser usado no processo. Chamadas subsequentes para métodos de hospedagem retornam HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Não havia memória suficiente disponível para concluir a alocação solicitada.

Comentários

As sequências de chamadas de e para código não gerenciado podem ser aninhadas. Por exemplo, a lista abaixo descreve uma situação hipotética na qual a sequência de chamadas para LeaveRuntime, IHostTaskManager::ReverseEnterRuntime , IHostTaskManager::ReverseLeaveRuntime e IHostTaskManager::EnterRuntime permite que o host identifique as camadas aninhadas.

Ação Chamada de método correspondente
Um executável gerenciado do Visual Basic chama uma função não gerenciada escrita em C usando invocação de plataforma. IHostTaskManager::LeaveRuntime
A função C não gerenciada chama um método em uma DLL gerenciada escrita em C#. IHostTaskManager::ReverseEnterRuntime
A função C# gerenciada chama outra função não gerenciada escrita em C, também usando invocação de plataforma. IHostTaskManager::LeaveRuntime
A segunda função não gerenciada retorna a execução para a função C#. IHostTaskManager::EnterRuntime
A função C# retorna a execução para a primeira função não gerenciada. IHostTaskManager::ReverseLeaveRuntime
A primeira função não gerenciada retorna a execução para o programa Visual Basic. IHostTaskManager::EnterRuntime

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: MSCorEE.h

Biblioteca: incluída como um recurso no MSCorEE.dll

Versões do .NET Framework: disponíveis desde 2.0

Confira também