Partilhar via


Método IHostTaskManager::LeaveRuntime

Notifica o anfitrião de que a tarefa atualmente em execução está prestes a sair do runtime de linguagem comum (CLR) e introduzir código não gerido.

Importante

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

Sintaxe

HRESULT LeaveRuntime (  
    [in] SIZE_T target  
);  

Parâmetros

target
[in] O endereço no ficheiro executável portátil mapeado da função não gerida a ser chamada.

Devolver Valor

HRESULT Description
S_OK LeaveRuntime devolvido com êxito.
HOST_E_CLRNOTAVAILABLE O CLR não foi carregado para um processo ou o CLR está num estado em que não pode executar o código gerido ou processar a chamada com êxito.
HOST_E_TIMEOUT A chamada excedeu o limite de tempo.
HOST_E_NOT_OWNER O autor da chamada não é o proprietário do bloqueio.
HOST_E_ABANDONED Um evento foi cancelado enquanto um thread ou fibra bloqueado estava à espera.
E_FAIL Ocorreu uma falha catastrófica desconhecida. Quando um método devolve E_FAIL, o CLR já não é utilizável no processo. As chamadas subsequentes para métodos de alojamento devolvem HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Não existe memória suficiente disponível para concluir a alocação pedida.

Observações

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

Ação Chamada de Método Correspondente
Um executável gerido do Visual Basic chama uma função não gerida escrita em C através da invocação da plataforma. IHostTaskManager::LeaveRuntime
A função C não gerida chama um método numa DLL gerida escrita em C#. IHostTaskManager::ReverseEnterRuntime
A função C# gerida chama outra função não gerida escrita em C, também através da invocação da plataforma. IHostTaskManager::LeaveRuntime
A segunda função não gerida devolve a execução à função C#. IHostTaskManager::EnterRuntime
A função C# devolve a execução à primeira função não gerida. IHostTaskManager::ReverseLeaveRuntime
A primeira função não gerida devolve a execução ao programa Visual Basic. IHostTaskManager::EnterRuntime

Requisitos

Plataformas: Veja Requisitos de Sistema.

Cabeçalho: MSCorEE.h

Biblioteca: Incluído como um recurso no MSCorEE.dll

.NET Framework Versões: Disponível desde 2.0

Ver também