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


Функция EngRestoreFloatingPointState (winddi.h)

Функция EngRestoreFloatingPointState восстанавливает состояние ядра Windows 2000 (и более поздних версий) с плавающей запятой после того, как драйвер использует любые аппаратные инструкции с плавающей запятой или MMX.

Синтаксис

BOOL EngRestoreFloatingPointState(
  [in] VOID *pBuffer
);

Параметры

[in] pBuffer

Указатель на буфер, содержимое которого было заполнено EngSaveFloatingPointState.

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

При успешном выполнении EngRestoreFloatingPointState возвращает значение TRUE. В противном случае возвращается значение FALSE.

Комментарии

Драйвер должен сохранить текущее состояние ядра с плавающей запятой, прежде чем использовать аппаратные инструкции с плавающей запятой. В системах архитектуры Intel это позволяет использовать инструкции MMX, если они поддерживаются процессором. Драйверы, которые неправильно используют EngSaveFloatingPointState и EngRestoreFloatingPointState при использовании оборудования с плавающей запятой или MMX, вызывают случайные повреждения с плавающей запятой или MMX в вызывающем приложении.

При каждом вызове драйвера драйвер должен вызывать EngSaveFloatingPointState один раз, чтобы сохранить состояние ядра перед использованием операций с плавающей запятой или MMX. Он также должен вызывать EngRestoreFloatingPointState после завершения всех операций с плавающей запятой или MMX для сброса состояния ядра.

GDI автоматически сохраняет состояние с плавающей запятой для всех вызовов процедуры DrvEscape драйвера, когда escape-файл OPENGL_CMD, OPENGL_GETINFO или MCDFUNCS.

Требования

   
Минимальная версия клиента Доступно в Windows 2000 и более поздних версиях операционных систем Windows.
Целевая платформа Универсальное
Верхняя часть winddi.h (включая Winddi.h)
Библиотека Win32k.lib
DLL Win32k.sys

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

DrvEscape

EngSaveFloatingPointState