Share via


EngSaveFloatingPointState-Funktion (winddi.h)

Die EngSaveFloatingPointState-Funktion speichert den aktuellen Kernel-Gleitkommazustand von Windows 2000 (und höher).

Syntax

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

Parameter

pBuffer

Zeiger auf den Puffer, der den Gleitkommazustand empfängt. Dieser Puffer muss null initialisiert sein und sich im nicht auslagerten Arbeitsspeicher befinden.

[in, out] cjBufferSize

Gibt die Größe des Puffers in Bytes an, auf den pBuffer zeigt.

Rückgabewert

Wenn pBuffer ungleich NULL ist, gibt EngSaveFloatingPointStateTRUE zurück, wenn der Zustand erfolgreich gespeichert wurde. False wird zurückgegeben , wenn der angegebene Puffer zu klein ist oder der Zustand nicht gespeichert werden kann.

Wenn pBufferNULL oder cjBufferSize null ist, gibt EngSaveFloatingPointState die Größe des Puffers zurück, der zum Speichern des Gleitkommazustands erforderlich ist. Wenn der Rückgabewert null ist, verfügt der Prozessor über keine Hardware-Gleitkommafunktion. In diesem Fall darf der Treiber keine Gleitkommaanweisungen verwenden.

Hinweise

Der Treiber muss den aktuellen Kernel-Gleitkommazustand speichern, bevor er Gleitkommahardwareanweisungen verwendet. Auf Intel-Architektursystemen ermöglicht dies die Verwendung von MMX-Anweisungen, wenn sie vom Prozessor unterstützt werden. Treiber, die EngSaveFloatingPointState und EngRestoreFloatingPointState bei Verwendung von Gleitkomma- oder MMX-Hardware nicht ordnungsgemäß verwenden, verursachen zufällige Gleitkomma- oder MMX-Beschädigungen in der aufrufenden Anwendung.

Bei jedem Aufruf des Treibers muss der Treiber EngSaveFloatingPointState einmal aufrufen, um den Kernelzustand beizubehalten, bevor Gleitkomma- oder MMX-Vorgänge verwendet werden. Außerdem muss EngRestoreFloatingPointState einmal aufgerufen werden, nachdem alle Gleitkomma- oder MMX-Vorgänge abgeschlossen sind, um den Kernelzustand zurückzusetzen.

GDI speichert automatisch den Gleitkommazustand für alle Aufrufe der DrvEscape-Routine eines Treibers, wenn das Escapezeichen OPENGL_CMD, OPENGL_GETINFO oder MCDFUNCS ist.

Anforderungen

   
Unterstützte Mindestversion (Client) Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Universell
Header winddi.h (einschließlich Winddi.h)
Bibliothek Win32k.lib
DLL Win32k.sys

Weitere Informationen

DrvEscape

EngRestoreFloatingPointState