Compartir a través de


IHostTaskManager::CallNeedsHostHook (Método)

Permite al host especificar si Common Language Runtime (CLR) puede procesar en línea la llamada especificada a una función no administrada.

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

Parámetros

  • target
    [in] Dirección en el archivo ejecutable portable asignado (PE) de la función no administrada a la que se va a llamar.

  • pbCallNeedsHostHook
    [out] Puntero a un valor booleano que indica si el host requiere que se enlace la llamada.

Valor devuelto

HRESULT

Descripción

S_OK

CallNeedsHostHook finalizó correctamente.

HOST_E_CLRNOTAVAILABLE

CLR no se ha cargado en un proceso o está en un estado en el que no puede ejecutar el código administrado o procesar la llamada correctamente.

HOST_E_TIMEOUT

Se agotó el tiempo de espera de la llamada.

HOST_E_NOT_OWNER

El llamador no posee el bloqueo.

HOST_E_ABANDONED

Se canceló un evento mientras una fibra o un subproceso bloqueado estaba esperándole.

E_FAIL

Se ha producido un error irrecuperable desconocido. Si un método devuelve E_FAIL, CLR no se puede seguir utilizando en el proceso. Las llamadas subsiguientes a métodos de hospedaje devuelven HOST_E_CLRNOTAVAILABLE.

Comentarios

Para facilitar la ejecución del código, CLR realiza un análisis de cada llamada de invocación de plataforma durante la compilación para determinar si la llamada puede insertarse. CallNeedsHostHook permite que el host invalide esa decisión y exige que se enlace una llamada a la función no administrada. Si el host requiere un enlace, el motor en tiempo de ejecución no procesa en línea la llamada.

Normalmente el host exigirá un enlace allí donde debe ajustar un estado de punto flotante o tras recibir la notificación de que una llamada está entrando en un estado que no permite al host realizar el seguimiento de las solicitudes del motor en tiempo de ejecución para memoria o cualquier bloqueo tomado. Cuando el host requiere que se enlace la llamada, el tiempo de ejecución notifica al host las transiciones de entrada y salida al código administrado mediante llamadas a EnterRuntime, LeaveRuntime, ReverseEnterRuntime y ReverseLeaveRuntime.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: MSCorEE.h

Biblioteca: Se incluye como recurso en MsCorEE.dll

Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vea también

Referencia

ICLRTask (Interfaz)

ICLRTaskManager (Interfaz)

IHostTask (Interfaz)

IHostTaskManager (Interfaz)