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 KFLOATING_SAVE que foi passada na chamada anterior para KeSaveFloatingPointState.
Retornar valor
KeRestoreFloatingPointState retorna STATUS_SUCCESS.
Comentários
KeRestoreFloatingPointState é a recíproca de KeSaveFloatingPointState.
Qualquer rotina que chame KeSaveFloatingPointState deve chamar KeRestoreFloatingPointState antes que essa rotina retorne o controle e ela deve estar em execução no mesmo IRQL do que a chamada anterior para KeSaveFloatingPointState . A falha ao atender a qualquer uma dessas condições causa um bug do sistema marcar.
O código do driver no modo kernel deve garantir que as chamadas para KeSaveFloatingPointState e KeRestoreFloatingPointState sejam aninhadas corretamente. 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 do 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 aninhado dentro de um par de chamadas KeSaveFloatingPointState e KeRestoreFloatingPointState ao redor, 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 |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (consulte a seção Comentários) |