Partager via


IHostTaskManager::CallNeedsHostHook, méthode

Permet à l’hôte de spécifier si le Common Language Runtime (CLR) peut inliner l’appel spécifié à une fonction non managée.

Syntaxe

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

Paramètres

target
[in] Adresse dans le fichier exécutable portable (PE) mappé de la fonction non managée à appeler.

pbCallNeedsHostHook
[out] Pointeur vers une valeur booléenne indiquant si l’hôte requiert que l’appel soit raccroché.

Valeur de retour

HRESULT Description
S_OK CallNeedsHostHook retourné.
HOST_E_CLRNOTAVAILABLE Le CLR n’a pas été chargé dans un processus ou son état ne lui permet pas d’exécuter du code managé ni de traiter l’appel correctement.
HOST_E_TIMEOUT L’appel a expiré.
HOST_E_NOT_OWNER L’appelant n’est pas propriétaire du verrou.
HOST_E_ABANDONED Un événement a été annulé alors qu’un thread ou une fibre bloqué l’attendait.
E_FAIL Une défaillance catastrophique inconnue s’est produite. Quand une méthode retourne E_FAIL, le CLR n’est plus utilisable au sein du processus. Les appels suivants aux méthodes d’hébergement renvoient HOST_E_CLRNOTAVAILABLE.

Notes

Pour optimiser l’exécution du code, le CLR effectue une analyse de chaque appel avec invocation de plateforme pendant la compilation pour déterminer si l’appel peut être inclus. CallNeedsHostHook permet à l’hôte de passer outre cette décision en exigeant qu’un appel à une fonction non managée soit raccroché. Si l’hôte requiert de raccrocher, le runtime n’inclus pas l’appel.

L’hôte requiert généralement de raccrocher quand il doit ajuster un état à virgule flottante, ou lors de la réception d’une notification indiquant qu’un appel entre dans un état où l’hôte ne peut pas suivre les demandes de mémoire du runtime ou des verrous pris. Lorsque l’hôte requiert que l’appel soit raccroché, le runtime avertit l’hôte des transitions vers et depuis le code managé à l’aide d’appels à EnterRuntime, LeaveRuntime, ReverseEnterRuntime, et ReverseLeaveRuntime.

Spécifications

Plateformes : Consultez Configuration requise.

En-tête : MSCorEE.h

Bibliothèque : incluse en tant que ressource dans MsCorEE.dll

Versions de .NET Framework : Disponible depuis la version 2.0

Voir aussi