Метод IHostTaskManager::CallNeedsHostHook
Обновлен: Ноябрь 2007
Позволяет основному приложению указать, сможет ли среда 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.idl
Библиотека: включена как ресурс в MSCorEE.dll
Версии платформы .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0