Метод 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.