Compartir a través de


Función EngSaveFloatingPointState (winddi.h)

La función EngSaveFloatingPointState guarda el estado actual de punto flotante del kernel de Windows 2000 (y versiones posteriores).

Sintaxis

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

Parámetros

pBuffer

Puntero al búfer que recibe el estado de punto flotante. Este búfer debe inicializarse en cero y debe estar en memoria no paginada.

[in, out] cjBufferSize

Especifica el tamaño, en bytes, del búfer al que apunta pBuffer .

Valor devuelto

Si pBuffer no es NULL, EngSaveFloatingPointState devuelve TRUE si el estado se guarda correctamente. Devuelve FALSE si el búfer especificado es demasiado pequeño o el estado no se puede guardar.

Si pBuffer es NULL o cjBufferSize es cero, EngSaveFloatingPointState devuelve el tamaño del búfer necesario para guardar el estado de punto flotante. Si el valor devuelto es cero, el procesador no tiene capacidad de punto flotante de hardware. En este caso, el controlador no debe usar ninguna instrucción de punto flotante.

Comentarios

El controlador debe guardar el estado de punto flotante del kernel actual antes de usar instrucciones de hardware de punto flotante. En los sistemas de arquitectura Intel, esto permite el uso de instrucciones MMX si son compatibles con el procesador. Los controladores que no usan correctamente EngSaveFloatingPointState y EngRestoreFloatingPointState cuando se usa hardware MMX o de punto flotante provocarán daños aleatorios en la aplicación que realiza la llamada.

En cada llamada al controlador, el controlador debe llamar a EngSaveFloatingPointState una vez para conservar el estado del kernel antes de usar operaciones mmx o de punto flotante. También debe llamar a EngRestoreFloatingPointState una vez después de que se completen todas las operaciones de punto flotante o MMX para restablecer el estado del kernel.

GDI guarda automáticamente el estado de punto flotante para las llamadas a la rutina DrvEscape de un controlador cuando el escape se OPENGL_CMD, OPENGL_GETINFO o MCDFUNCS.

Requisitos

   
Cliente mínimo compatible Disponible en Windows 2000 y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Universal
Encabezado winddi.h (incluya Winddi.h)
Library Win32k.lib
Archivo DLL Win32k.sys

Consulte también

DrvEscape

EngRestoreFloatingPointState