Compartir a través de


IHostTaskManager::CallNeedsHostHook (Método)

Actualización: noviembre 2007

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 se devolvió 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 ayudar a optimizar 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 procesarse en línea. CallNeedsHostHook permite al host invalidar esta decisión y exigir que se enlace la llamada a una 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.idl

Biblioteca: se incluye como recurso en MsCorEE.dll

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

Vea también

Referencia

ICLRTask

ICLRTaskManager

IHostTask

IHostTaskManager