Partilhar via


Função KeRestoreFloatingPointState (wdm.h)

A rotina KeRestoreFloatingPointState restaura o contexto de ponto flutuante nãovolatile salvo pela chamada anterior para KeSaveFloatingPointState.

Sintaxe

NTSTATUS KeRestoreFloatingPointState(
  [in] PKFLOATING_SAVE FloatSave
);

Parâmetros

[in] FloatSave

Um ponteiro para a estrutura de KFLOATING_SAVE que foi passada na chamada anterior para KeSaveFloatingPointState .

Valor de retorno

KeRestoreFloatingPointState retorna STATUS_SUCCESS.

Observações

KeRestoreFloatingPointState é a recíproca de KeSaveFloatingPointState.

Qualquer rotina que chame KeSaveFloatingPointState deve chamar KeRestoreFloatingPointState antes que essa rotina retorne o controle e deve estar em execução no mesmo IRQL do qual a chamada anterior para KeSaveFloatingPointState. A falha ao atender a qualquer uma dessas condições causa uma verificação de bugs do sistema.

O código do driver no modo kernel deve garantir que as chamadas para KeSaveFloatingPointState e KeRestoreFloatingPointState estejam corretamente aninhadas. Isso é necessário para que, em cada nível de aninhamento, o estado que foi restaurado pela chamada KeRestoreFloatingPointState seja o mesmo estado que foi salvo pela chamada KeSaveFloatingPointState correspondente. Para garantir o aninhamento adequado, o código do driver no modo kernel deve seguir estas regras:

  • Uma chamada KeRestoreFloatingPointState que restaura um estado salvo deve estar em execução no mesmo IRQL que a chamada KeSaveFloatingPointState que salvou o estado.
  • Se um par de chamadas KeSaveFloatingPointState e KeRestoreFloatingPointState estiver aninhada em um par de chamadas KeSaveFloatingPointState e KeRestoreFloatingPointState, o IRQL para as chamadas aninhadas não deverá ser menor que o IRQL para as chamadas ao redor.
  • Normalmente, a estrutura de KFLOATING_SAVE alocada pelo chamador que contém o estado que foi salvo por KeSaveFloatingPointState reside na pilha. A pilha preserva naturalmente o aninhamento de informações de estado salvas. Se o código do driver armazenar o estado em um local diferente da pilha, o gravador de driver deverá ter um cuidado especial para preservar o aninhamento das chamadas KeSaveFloatingPointState e KeRestoreFloatingPointState.
  • A chamada KeRestoreFloatingPointState que restaura um estado salvo deve estar em execução no mesmo thread que a chamada KeSaveFloatingPointState que salvou o estado.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível a partir do Windows 2000.
da Plataforma de Destino Universal
cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (consulte a seção Comentários)

Consulte também

KFLOATING_SAVE

KeSaveFloatingPointState