EngRestoreFloatingPointState 函数 (winddi.h)

在驱动程序使用任何浮点或 MMX 硬件指令后, EngRestoreFloatingPointState 函数还原 Windows 2000 (及更高版本) 内核浮点状态。

语法

BOOL EngRestoreFloatingPointState(
  [in] VOID *pBuffer
);

参数

[in] pBuffer

指向由 EngSaveFloatingPointState 填充其内容的缓冲区的指针。

返回值

如果成功,EngRestoreFloatingPointState 将返回 TRUE。 否则,它将返回 FALSE

注解

在使用浮点硬件指令之前,驱动程序必须保存当前的内核浮点状态。 在 Intel 体系结构系统上,如果处理器支持 MMX 指令,则允许使用这些指令。 在使用浮点或 MMX 硬件时未正确使用 EngSaveFloatingPointStateEngRestoreFloatingPointState 的驱动程序将导致调用应用程序中的随机浮点或 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

另请参阅

DrvEscape

EngSaveFloatingPointState