Compartir a través de


Función KeRestoreFloatingPointState (wdm.h)

El KeRestoreFloatingPointState rutina 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.

Observaciones

KeRestoreFloatingPointState es la recíproca de KeSaveFloatingPointState.

Cualquier rutina que llame a KeSaveFloatingPointState debe llamar a KeRestoreFloatingPointState antes de que esa rutina devuelva control y debe ejecutarse en el mismo IRQL que desde el que se realizó la llamada anterior a KeSaveFloatingPointState. Si no se cumple alguna 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 el KeRestoreFloatingPointState llamada es el mismo estado que guardó la llamada KeSaveFloatingPointState correspondiente. Para garantizar un anidamiento adecuado, el código del controlador en modo kernel debe seguir estas reglas:

  • Una llamada KeRestoreFloatingPointState que restaura un estado guardado debe ejecutarse en el mismo IRQL que el KeSaveFloatingPointState llamada que guardó el estado.
  • Si un par de KeSaveFloatingPointState y keRestoreFloatingPointState llamadas se anida 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 de controladores debe tener especial cuidado para conservar el anidamiento de la KeSaveFloatingPointState y llamadas a KeRestoreFloatingPointState.
  • La llamada KeRestoreFloatingPointState que restaura un estado guardado debe ejecutarse en el mismo subproceso que el KeSaveFloatingPointState llamada que guardó el estado.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 2000.
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL <= DISPATCH_LEVEL (consulte la sección Comentarios)

Consulte también

KFLOATING_SAVE

KeSaveFloatingPointState