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


Метод 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 не загружена в процесс или находится в состоянии, в котором ей не удается выполнить управляемый код или успешно обработать вызов.

HOST_E_TIMEOUT

Время ожидания вызова истекло.

HOST_E_NOT_OWNER

Вызывающий объект не владеет блокировкой.

HOST_E_ABANDONED

Событие, которого ожидал заблокированный поток или нить, было отменено.

E_FAIL

Произошла неизвестная фатальная ошибка. Если метод вернет значение E_FAIL, среду CLR более нельзя будет использовать в данном процессе. Последующие вызовы методов размещения возвращают значение HOST_E_CLRNOTAVAILABLE.

Заметки

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

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

Требования

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

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

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

Версии платформы .NET Framework: 4, 3.5 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0

См. также

Ссылки

Интерфейс ICLRTask

Интерфейс ICLRTaskManager

Интерфейс IHostTask

Интерфейс IHostTaskManager