Metodo IHostTaskManager::LeaveRuntime
Notifica all'host che l'attività attualmente in esecuzione sta per lasciare Common Language Runtime (CLR) e immettere codice non gestito.
Importante
Una chiamata corrispondente a IHostTaskManager::EnterRuntime notifica all'host che l'attività attualmente in esecuzione sta reimmettendo codice gestito.
Sintassi
HRESULT LeaveRuntime (
[in] SIZE_T target
);
Parametri
target
[in] Indirizzo all'interno del file eseguibile portabile mappato della funzione non gestita da chiamare.
Valore restituito
HRESULT | Descrizione |
---|---|
S_OK | LeaveRuntime restituito correttamente. |
HOST_E_CLRNOTAVAILABLE | CLR non è stato caricato in un processo oppure CLR si trova in uno stato in cui non può eseguire codice gestito o elaborare correttamente la chiamata. |
HOST_E_TIMEOUT | Timeout della chiamata. |
HOST_E_NOT_OWNER | Il chiamante non possiede il blocco. |
HOST_E_ABANDONED | Un evento è stato annullato durante l'attesa di un thread o di una fibra bloccata. |
E_FAIL | Si è verificato un errore irreversibile sconosciuto. Quando un metodo restituisce E_FAIL, CLR non è più utilizzabile all'interno del processo. Le chiamate successive ai metodi di hosting restituiscono HOST_E_CLRNOTAVAILABLE. |
E_OUTOFMEMORY | Memoria insufficiente per completare l'allocazione richiesta. |
Commenti
Le sequenze di chiamata da e verso il codice non gestito possono essere annidate. Ad esempio, l'elenco seguente descrive 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 di Visual Basic gestito chiama una funzione non gestita scritta in C tramite platform invoke. | IHostTaskManager::LeaveRuntime |
La funzione C non gestita chiama un metodo in una DLL gestita scritta in C#. | IHostTaskManager::ReverseEnterRuntime |
La funzione C# gestita chiama un'altra funzione non gestita scritta in C, usando anche platform invoke. | IHostTaskManager::LeaveRuntime |
La seconda funzione non gestita restituisce l'esecuzione alla funzione C#. | IHostTaskManager::EnterRuntime |
La funzione 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: Incluso come risorsa in MSCorEE.dll
Versioni di .NET Framework: Disponibile dalla versione 2.0