Compartir a través de


IHostTaskManager::CallNeedsHostHook (Método)

Permite al host especificar si Common Language Runtime (CLR) puede insertar la llamada especificada a una función no administrada.

Sintaxis

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

Parámetros

target
[in] Dirección en el archivo ejecutable portátil (PE) asignado 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 exige que se enlace la llamada.

Valor devuelto

HRESULT Descripción
S_OK CallNeedsHostHook se devolvió correctamente.
HOST_E_CLRNOTAVAILABLE Si se devuelve este valor, significa que Common Language Runtime (CLR) no se ha cargado en un proceso o se encuentra en un estado en el que no puede ejecutar código administrado ni procesar la llamada correctamente.
HOST_E_TIMEOUT Se agotó el tiempo de espera de la llamada.
HOST_E_NOT_OWNER El autor de la llamada no es el propietario del bloqueo.
HOST_E_ABANDONED Se canceló un evento mientras que una fibra o subproceso que estaba bloqueado lo estaba esperando.
E_FAIL Se ha producido un error grave desconocido. Si un método devuelve el valor E_FAIL, CLR ya no se podrá usar en el proceso. Las llamadas que se hagan a los métodos de hospedaje posteriormente devolverán el valor HOST_E_CLRNOTAVAILABLE.

Comentarios

Para ayudar a optimizar la ejecución de código, CLR realiza un análisis de cada llamada de invocación de plataforma durante la compilación a fin de determinar si la llamada se puede insertar. CallNeedsHostHook permite que el host invalide esa decisión al exigir que se enlace una llamada a una función no administrada. Si el host requiere un enlace, el runtime no inserta la llamada.

Normalmente, el host requeriría un enlace en el que debe ajustar un estado de punto flotante, o al recibir una notificación de que una llamada entra en un estado en el que el host no puede realizar un seguimiento de las solicitudes de memoria del runtime o de los bloqueos realizados. Cuando el host requiere que se enlace la llamada, el runtime notifica al host de transiciones al código administrado y desde este mediante llamadas a EnterRuntime, LeaveRuntime, ReverseEnterRuntime y ReverseLeaveRuntime.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: MSCorEE.h

Biblioteca: incluida como recurso en MSCorEE.dll

Versiones de .NET Framework: disponible a partir de la versión 2.0

Consulte también