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