Condividi tramite


Metodo IHostTaskManager::LeaveRuntime

Notifica all'host che l'attività attualmente in esecuzione sta uscendo da Common Language Runtime per entrare nel codice non gestito.

Nota importanteImportante

Una corrispondente chiamata a IHostTaskManager::EnterRuntime notifica all'host che l'attività attualmente in esecuzione sta rientrando nel codice gestito.

HRESULT LeaveRuntime (
    [in] SIZE_T target
);

Parametri

  • target
    [in] Indirizzo all'interno del file mappato di tipo PE della funzione non gestita che deve essere chiamata.

Valore restituito

HRESULT

Oggetto di descrizione

S_OK

LeaveRuntime ha restituito correttamente un valore.

HOST_E_CLRNOTAVAILABLE

Common Language Runtime non è stato caricato in un processo oppure si trova in uno stato in cui non è possibile eseguire codice gestito né elaborare correttamente la chiamata.

HOST_E_TIMEOUT

Timeout della chiamata.

HOST_E_NOT_OWNER

Il chiamante non è il proprietario del blocco.

HOST_E_ABANDONED

Un evento è stato annullato mentre un thread o un fiber bloccato era in attesa di tale evento.

E_FAIL

Si è verificato un errore irreversibile sconosciuto. Se un metodo restituisce E_FAIL, CLR non sarà più utilizzabile all'interno del processo. Le successive chiamate ai metodi di hosting restituiranno HOST_E_CLRNOTAVAILABLE.

E_OUTOFMEMORY

Memoria insufficiente per completare l'allocazione richiesta.

Note

Le sequenze di chiamate provenienti e dirette a codice gestito possono essere annidate. Ad esempio, nell'elenco seguente viene descritta una situazione ipotetica in cui la sequenza di chiamate a LeaveRuntime, IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime e IHostTaskManager::EnterRuntime consente all'host di identificare i livelli annidati.

Azione

Chiamata al metodo corrispondente

Un eseguibile Visual Basic gestito effettua la chiamata a una funzione non gestita scritta in C tramite platform invoke.

IHostTaskManager::LeaveRuntime

La funzione in C non gestita chiama un metodo in una DLL gestita scritta in C#.

IHostTaskManager::ReverseEnterRuntime

La funzione in C# gestita chiama un'altra funzione non gestita scritta in C, sempre tramite platform invoke.

IHostTaskManager::LeaveRuntime

La seconda funzione non gestita restituisce l'esecuzione alla funzione in C#.

IHostTaskManager::EnterRuntime

La funzione in C# restituisce l'esecuzione alla prima funzione non gestita.

IHostTaskManager::ReverseLeaveRuntime

La prima funzione non gestita restituisce l'esecuzione al programma Visual Basic.

IHostTaskManager::EnterRuntime

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: inclusa come risorsa in MSCorEE.dll

Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vedere anche

Riferimenti

Interfaccia ICLRTask

Interfaccia ICLRTaskManager

Interfaccia IHostTask

Interfaccia IHostTaskManager