Поделиться через


Метод IHostTaskManager::CallNeedsHostHook

Позволяет узлу указать, может ли среда CLR встраивать указанный вызов неуправляемой функции.

Синтаксис

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

Параметры

target
[in] Адрес в сопоставленном переносимом исполняемом файле (PE) вызываемой неуправляемой функции.

pbCallNeedsHostHook
[out] Указатель на логическое значение, указывающее, требуется ли узлу подключение к вызову.

Возвращаемое значение

HRESULT Описание:
S_OK CallNeedsHostHook возвращено успешно.
HOST_E_CLRNOTAVAILABLE Среда CLR не была загружена в процесс или среда CLR находится в состоянии, в котором она не может выполнить управляемый код или обработать вызов успешно.
HOST_E_TIMEOUT Время ожидания звонка истекло.
HOST_E_NOT_OWNER Вызывающий объект не владеет блокировкой.
HOST_E_ABANDONED Событие было отменено во время ожидания заблокированного потока или волокна.
E_FAIL Произошла неизвестная катастрофическая ошибка. Когда метод возвращает E_FAIL, среда CLR больше не используется в рамках процесса. Последующие вызовы методов размещения возвращают HOST_E_CLRNOTAVAILABLE.

Комментарии

Чтобы оптимизировать выполнение кода, среда CLR выполняет анализ каждого вызова платформы во время компиляции, чтобы определить, можно ли встраивать вызов. CallNeedsHostHook позволяет узлу переопределить это решение, требуя, чтобы вызов неуправляемой функции был подключен. Если для узла требуется перехватчик, среда выполнения не встраит вызов.

Как правило, узлу требуется перехватчик, в котором он должен настроить состояние с плавающей запятой, или при получении уведомления о том, что вызов входит в состояние, в котором узел не может отслеживать запросы среды выполнения для памяти или любые принятые блокировки. Когда узел требует, чтобы вызов был подключен, среда выполнения уведомляет узел о переходах в управляемый код и из нее с помощью вызовов EnterRuntime, LeaveRuntime, ReverseEnterRuntime и ReverseLeaveRuntime.

Требования

Платформы: см. раздел Требования к системе.

Заголовка: MSCorEE.h

Библиотека: Включается в качестве ресурса в MSCorEE.dll

версии платформа .NET Framework: доступно с версии 2.0.

См. также раздел