共用方式為


EngSaveFloatingPointState 函式 (winddi.h)

EngSaveFloatingPointState函式會儲存目前的 Windows 2000 (和更新版本,) 核心浮點狀態。

語法

ULONG EngSaveFloatingPointState(
            VOID  *pBuffer,
  [in, out] ULONG cjBufferSize
);

參數

pBuffer

接收浮點狀態之緩衝區的指標。 這個緩衝區必須以零初始化,而且必須位於非分頁式記憶體中。

[in, out] cjBufferSize

指定 pBuffer 指向之緩衝區的大小,以位元組為單位。

傳回值

如果 pBuffer 不是Null,則如果成功儲存狀態, EngSaveFloatingPointState 會傳回 TRUE 。 如果指定的緩衝區太小或無法儲存狀態,則會傳回 FALSE

如果 pBufferNullcjBufferSize 為零, EngSaveFloatingPointState 會傳回儲存浮點狀態所需的緩衝區大小。 如果傳回值為零,處理器沒有硬體浮點功能。 在此情況下,驅動程式不得使用任何浮點指令。

備註

驅動程式必須先儲存目前的核心浮點狀態,才能使用浮點硬體指示。 在 Intel 架構系統上,如果處理器支援 MMX 指令,這會允許使用 MMX 指令。 使用浮點或 MMX 硬體時,未正確使用 EngSaveFloatingPointStateEngRestoreFloatingPointState 的驅動程式會導致呼叫應用程式中隨機的浮點或 MMX 損毀。

每次呼叫驅動程式時,驅動程式都必須呼叫 EngSaveFloatingPointState 一次,才能在使用浮點或 MMX 作業之前保留核心狀態。 它也必須在所有浮點或 MMX 作業完成之後呼叫 EngRestoreFloatingPointState 一次,才能重設核心狀態。

當逸出OPENGL_CMD、OPENGL_GETINFO或 MCDFUNCS 時,GDI 會自動儲存驅動程式 DrvEscape 常式的任何呼叫的浮點狀態。

規格需求

   
最低支援的用戶端 適用于 Windows 2000 和更新版本的 Windows 作業系統。
目標平台 Universal
標頭 winddi.h (包含 Winddi.h)
程式庫 Win32k.lib
Dll Win32k.sys

另請參閱

DrvEscape

EngRestoreFloatingPointState