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