Compartilhar via


Função EngSaveFloatingPointState (winddi.h)

A função EngSaveFloatingPointState salva o estado atual do ponto flutuante do kernel do Windows 2000 (e posterior).

Sintaxe

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

Parâmetros

pBuffer

Ponteiro para o buffer que recebe o estado de ponto flutuante. Esse buffer deve ser inicializado por zero e deve estar na memória nãopagada.

[in, out] cjBufferSize

Especifica o tamanho, em bytes, do buffer para o qual pBuffer aponta.

Valor retornado

Se pBuffer não for NULL, EngSaveFloatingPointState retornará TRUE se o estado for salvo com êxito. Ele retornará FALSE se o buffer especificado for muito pequeno ou se o estado não puder ser salvo.

Se pBuffer for NULL ou cjBufferSize for zero, EngSaveFloatingPointState retornará o tamanho do buffer necessário para salvar o estado de ponto flutuante. Se o valor retornado for zero, o processador não terá a funcionalidade de ponto flutuante de hardware. Nesse caso, o driver não deve usar nenhuma instrução de ponto flutuante.

Comentários

O driver deve salvar o estado atual do ponto flutuante do kernel antes de usar instruções de hardware de ponto flutuante. Em sistemas de arquitetura Intel, isso permite o uso de instruções MMX se elas forem compatíveis com o processador. Os drivers que não usam corretamente EngSaveFloatingPointState e EngRestoreFloatingPointState ao usar hardware de ponto flutuante ou MMX causarão corrupção aleatória de ponto flutuante ou MMX no aplicativo de chamada.

Em cada chamada para o driver, o driver deve chamar EngSaveFloatingPointState uma vez para preservar o estado do kernel antes de usar operações de ponto flutuante ou MMX. Ele também deve chamar EngRestoreFloatingPointState uma vez depois que todas as operações de ponto flutuante ou MMX forem concluídas para redefinir o estado do kernel.

A GDI salva automaticamente o estado de ponto flutuante para todas as chamadas para a rotina DrvEscape de um driver quando o escape é OPENGL_CMD, OPENGL_GETINFO ou MCDFUNCS.

Requisitos

   
Cliente mínimo com suporte Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Universal
Cabeçalho winddi.h (inclua Winddi.h)
Biblioteca Win32k.lib
DLL Win32k.sys

Confira também

DrvEscape

EngRestoreFloatingPointState