Condividi tramite


Metodo IHostTaskManager::CallNeedsHostHook

Consente all'host di specificare se Common Language Runtime può rendere inline la chiamata specificata a una funzione non gestita.

HRESULT CallNeedsHostHook (
    [in]  SIZE_T target, 
    [out] BOOL   *pbCallNeedsHostHook
);

Parametri

  • target
    [in] Indirizzo all'interno del file eseguibile mappato di tipo PE della funzione non gestita da chiamare.

  • pbCallNeedsHostHook
    [out] Puntatore a un valore booleano che indica se l'host richiede l'esecuzione di un hook per la chiamata.

Valore restituito

HRESULT

Oggetto di descrizione

S_OK

CallNeedsHostHook 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 grave sconosciuto. Se un metodo restituisce E_FAIL, Common Language Runtime non sarà più utilizzabile all'interno del processo. Le successive chiamate ai metodi di hosting restituiranno HOST_E_CLRNOTAVAILABLE.

Note

Per ottimizzare l'esecuzione del codice, durante la compilazione Common Language Runtime esegue un'analisi di ciascuna chiamata PInvoke per determinare se la chiamata può essere resa inline. Il metodo CallNeedsHostHook consente all'host di ignorare tale decisione richiedendo l'esecuzione di un hook per una chiamata a una funzione non gestita. Se l'host richiede un hook, la chiamata non verrà resa inline.

L'host in genere richiede un hook quando è necessario modificare uno stato a virgola mobile o dopo aver ricevuto la notifica che una chiamata sta per passare in uno stato in cui non è possibile tenere traccia delle richieste di memoria e degli eventuali blocchi acquisiti. Quando l'host richiede l'hook della chiamata, Common Language Runtime notifica all'host le transizioni da e verso codice gestito mediante chiamate ai metodi EnterRuntime, LeaveRuntime, ReverseEnterRuntimee ReverseLeaveRuntime.

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