Partager via


Fonction EngRestoreFloatingPointState (winddi.h)

La fonction EngRestoreFloatingPointState restaure l’état à virgule flottante du noyau Windows 2000 (et versions ultérieures) après que le pilote a utilisé des instructions matérielles à virgule flottante ou MMX.

Syntaxe

BOOL EngRestoreFloatingPointState(
  [in] VOID *pBuffer
);

Paramètres

[in] pBuffer

Pointeur vers la mémoire tampon dont le contenu a été rempli par EngSaveFloatingPointState.

Valeur retournée

EngRestoreFloatingPointState retourne TRUE en cas de réussite. Sinon, il retourne FALSE.

Remarques

Le pilote doit enregistrer l’état actuel du noyau à virgule flottante avant d’utiliser des instructions matérielles à virgule flottante. Sur les systèmes d’architecture Intel, cela permet d’utiliser des instructions MMX si elles sont prises en charge par le processeur. Les pilotes qui n’utilisent pas correctement EngSaveFloatingPointState et EngRestoreFloatingPointState lors de l’utilisation d’un matériel à virgule flottante ou MMX entraînent une altération aléatoire à virgule flottante ou MMX dans l’application appelante.

À chaque appel au pilote, le pilote doit appeler EngSaveFloatingPointState une fois pour conserver l’état du noyau avant d’utiliser des opérations à virgule flottante ou MMX. Il doit également appeler EngRestoreFloatingPointState une fois que toutes les opérations à virgule flottante ou MMX sont terminées pour réinitialiser l’état du noyau.

GDI enregistre automatiquement l’état à virgule flottante pour tous les appels à la routine DrvEscape d’un pilote lorsque l’échappement est OPENGL_CMD, OPENGL_GETINFO ou MCDFUNCS.

Configuration requise

   
Client minimal pris en charge Disponible dans Windows 2000 et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Universal
En-tête winddi.h (inclure Winddi.h)
Bibliothèque Win32k.lib
DLL Win32k.sys

Voir aussi

DrvEscape

EngSaveFloatingPointState