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