Compartir a través de


Función KeRestoreFloatingPointState (wdm.h)

La rutina KeRestoreFloatingPointState restaura el contexto de punto flotante no volátil guardado por la llamada anterior a KeSaveFloatingPointState.

Sintaxis

NTSTATUS KeRestoreFloatingPointState(
  [in] PKFLOATING_SAVE FloatSave
);

Parámetros

[in] FloatSave

Puntero a la estructura KFLOATING_SAVE que se pasó en la llamada anterior a KeSaveFloatingPointState.

Valor devuelto

KeRestoreFloatingPointState devuelve STATUS_SUCCESS.

Comentarios

KeRestoreFloatingPointState es el mutuo de KeSaveFloatingPointState.

Cualquier rutina que llame a KeSaveFloatingPointState debe llamar a KeRestoreFloatingPointState antes de que esa rutina devuelva el control y debe ejecutarse en el mismo IRQL que desde el que se produjo la llamada anterior a KeSaveFloatingPointState . Si no se cumple cualquiera de estas condiciones, se produce una comprobación de errores del sistema.

El código del controlador en modo kernel debe asegurarse de que las llamadas a KeSaveFloatingPointState y KeRestoreFloatingPointState estén anidadas correctamente. Esto es necesario para que, en cada nivel de anidamiento, el estado restaurado por la llamada KeRestoreFloatingPointState sea el mismo estado guardado por la llamada a KeSaveFloatingPointState correspondiente. Para garantizar el anidamiento adecuado, el código del controlador en modo kernel debe seguir estas reglas:

  • Una llamada KeRestoreFloatingPointState que restaure un estado guardado debe ejecutarse en el mismo IRQL que la llamada KeSaveFloatingPointState que guardó el estado.
  • Si un par de llamadas KeSaveFloatingPointState y KeRestoreFloatingPointState se anidan dentro de un par de llamadas KeSaveFloatingPointState y KeRestoreFloatingPointState , el IRQL para las llamadas anidadas no debe ser inferior a IRQL para las llamadas circundantes.
  • Normalmente, la estructura de KFLOATING_SAVE asignada por el autor de la llamada que contiene el estado guardado por KeSaveFloatingPointState reside en la pila. La pila conserva naturalmente el anidamiento de la información de estado guardada. Si el código del controlador almacena el estado en una ubicación distinta de la pila, el escritor del controlador debe tener especial cuidado para conservar el anidamiento de las llamadas KeSaveFloatingPointState y KeRestoreFloatingPointState .
  • La llamada KeRestoreFloatingPointState que restaura un estado guardado debe ejecutarse en el mismo subproceso que la llamada KeSaveFloatingPointState que guardó el estado.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (consulte la sección Comentarios)

Consulte también

KFLOATING_SAVE

KeSaveFloatingPointState