Partager via


IHostTaskManager::CallNeedsHostHook, méthode

Permet à l'hôte de spécifier si le Common Language Runtime (CLR) peut traiter en mode inline l'appel spécifié à une fonction non managée.

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

Paramètres

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

  • pbCallNeedsHostHook
    [out] Pointeur vers une valeur Boolean qui indique si l'hôte requiert que l'appel soit raccordé.

Valeur de retour

HRESULT

Description

S_OK

CallNeedsHostHook a été retourné avec succès.

HOST_E_CLRNOTAVAILABLE

Le CLR n'a pas été chargé dans un processus ou le CLR présente un état dans lequel il ne peut pas exécuter de code managé ou traiter l'appel avec succès.

HOST_E_TIMEOUT

L'appel a expiré.

HOST_E_NOT_OWNER

L'appelant ne possède pas le verrou.

HOST_E_ABANDONED

Un événement a été annulé alors qu'un thread bloqué ou une fibre l'attendait.

E_FAIL

Une défaillance grave et inconnue s'est produite. Lorsqu'une méthode retourne E_FAIL, le CLR n'est plus utilisable dans le processus. Les appels suivants aux méthodes d'hébergement retournent HOST_E_CLRNOTAVAILABLE.

Notes

Pour faciliter l'optimisation de l'exécution de code, le CLR effectue une analyse de chaque appel de code non managé pendant la compilation afin de déterminer si l'appel peut être traité en mode inline. CallNeedsHostHook permet à l'hôte de passer outre cette décision en requérant le raccordement d'un appel à une fonction non managée. Si l'hôte requiert un raccordement, le runtime ne traite pas l'appel en mode inline.

L'hôte requiert généralement un raccordement dans le cas où il devrait ajuster un état de virgule flottante ou lorsqu'il reçoit une notification selon laquelle un appel entre dans un état où l'hôte ne peut pas suivre les demandes de mémoire du runtime ni les verrous pris. Lorsque l'hôte requiert le raccordement de l'appel, le runtime notifie l'hôte des transitions à destination et en provenance du code managé en appelant EnterRuntime, LeaveRuntime, ReverseEnterRuntime et ReverseLeaveRuntime.

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

En-tête : MSCorEE.h

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

Versions du .NET Framework : 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Voir aussi

Référence

ICLRTask, interface

ICLRTaskManager, interface

IHostTask, interface

IHostTaskManager, interface