EngRestoreFloatingPointState 函数 (winddi.h)
在驱动程序使用任何浮点或 MMX 硬件指令后, EngRestoreFloatingPointState 函数还原 Windows 2000 (及更高版本) 内核浮点状态。
语法
BOOL EngRestoreFloatingPointState(
[in] VOID *pBuffer
);
参数
[in] pBuffer
指向由 EngSaveFloatingPointState 填充其内容的缓冲区的指针。
返回值
如果成功,EngRestoreFloatingPointState 将返回 TRUE。 否则,它将返回 FALSE。
注解
在使用浮点硬件指令之前,驱动程序必须保存当前的内核浮点状态。 在 Intel 体系结构系统上,如果处理器支持 MMX 指令,则允许使用这些指令。 在使用浮点或 MMX 硬件时未正确使用 EngSaveFloatingPointState 和 EngRestoreFloatingPointState 的驱动程序将导致调用应用程序中的随机浮点或 MMX 损坏。
每次调用驱动程序时,驱动程序都必须调用 EngSaveFloatingPointState 一次,以在使用浮点或 MMX 操作之前保留内核状态。 在完成所有浮点或 MMX 操作以重置内核状态后,它还必须调用 EngRestoreFloatingPointState 一次。
当转义为OPENGL_CMD、OPENGL_GETINFO或 MCDFUNCS 时,GDI 会自动保存对驱动程序的 DrvEscape 例程的任何调用的浮点状态。
要求
最低受支持的客户端 | 在 Windows 2000 及更高版本的 Windows 操作系统中可用。 |
目标平台 | 通用 |
标头 | winddi.h (包括 Winddi.h) |
Library | Win32k.lib |
DLL | Win32k.sys |