GDI 浮点服务

内核模式图形驱动程序必须在调用 GDI 提供的 EngSaveFloatingPointStateEngRestoreFloatingPointState 例程之间执行所有浮点操作。

如果硬件具有浮点处理器,驱动程序可以直接执行浮点运算。 否则,驱动程序可以使用下表中显示的 GDI FLOATOBJ 服务来模拟浮点运算。 无论处理器类型如何,驱动程序在声明浮点值时都应使用 FLOATL 数据类型。

函数 说明

EngRestoreFloatingPointState

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

EngSaveFloatingPointState

保存当前 Windows 2000 及更高版本的内核浮点状态。

FLOATOBJ_Add

添加两个 FLOATOBJ。

FLOATOBJ_AddFloat

添加 FLOATOBJ 和 FLOATL。

FLOATOBJ_AddLong

添加 FLOATOBJ 和 LONG。

FLOATOBJ_Div

将一个 FLOATOBJ 除以另一个 FLOATOBJ。

FLOATOBJ_DivFloat

将 FLOATOBJ 除以 FLOATL。

FLOATOBJ_DivLong

将 FLOATOBJ 除以 LONG。

FLOATOBJ_Equal

确定两个 FLOATOBJ 是否相等。

FLOATOBJ_EqualLong

确定 FLOATOBJ 和 LONG 是否相等。

FLOATOBJ_GetFloat

计算并返回 FLOATOBJ 的 FLOAT 等效值。

FLOATOBJ_GetLong

计算并返回 FLOATOBJ 的 LONG 等效值。

FLOATOBJ_GreaterThan

确定一个 FLOATOBJ 是否大于另一个。

FLOATOBJ_GreaterThanLong

确定 FLOATOBJ 是否大于 LONG。

FLOATOBJ_LessThan

确定一个 FLOATOBJ 是否小于另一个。

FLOATOBJ_LessThanLong

确定 FLOATOBJ 是否小于 LONG。

FLOATOBJ_Mul

将两个 FLOATOBJ 值相乘。

FLOATOBJ_MulFloat

将 FLOATOBJ 乘以 FLOATL。

FLOATOBJ_MulLong

将 FLOATOBJ 乘以 LONG。

FLOATOBJ_Neg

更改 FLOATOBJ 的符号。

FLOATOBJ_SetFloat

将 FLOATOBJ 设置为特定的 FLOATL 值。

FLOATOBJ_SetLong

将 FLOATOBJ 设置为特定的 LONG 值。

FLOATOBJ_Sub

从另一个 FLOATOBJ 中减去一个 FLOATOBJ。

FLOATOBJ_SubFloat

从 FLOATOBJ 中减去 FLOATL。

FLOATOBJ_SubLong

从 FLOATOBJ 中减去 LONG。