Metodo IHostTaskManager::LeaveRuntime
Notifica all'host che l'attività attualmente in esecuzione sta uscendo da Common Language Runtime per entrare nel codice non gestito.
Importante |
---|
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