Compartir a través de


Función KeSaveExtendedProcessorState (wdm.h)

La rutina KeSaveExtendedProcessorState guarda información de estado de procesador extendida.

Sintaxis

NTSTATUS KeSaveExtendedProcessorState(
  [in]  ULONG64      Mask,
  [out] PXSTATE_SAVE XStateSave
);

Parámetros

[in] Mask

Máscara de características de 64 bits. Los bits de esta máscara identifican los estados de características del procesador extendido que se van a guardar. Si un bit de máscara es uno, la rutina guarda el estado de la característica identificada por este bit. Si un bit de máscara es cero, no se guarda el estado de la característica correspondiente. Esta máscara no debe identificar las características extendidas del procesador que el sistema operativo no ha habilitado. Para obtener una máscara de las características habilitadas, llame a la rutina RtlGetEnabledExtendedFeatures.

Un autor de llamada puede establecer este parámetro en el OR bit a bit de uno o varios de los siguientes bits de marca XSTATE_MASK_XXX:

Valor Significado
XSTATE_MASK_LEGACY_FLOATING_POINT Extensión de punto flotante (x87/MMX).
XSTATE_MASK_LEGACY_SSE Extensión SIMD de streaming (SSE).
XSTATE_MASK_LEGACY Tanto las extensiones x87/MMX como SSE.
XSTATE_MASK_GSSE La extensión SSE intel Sandy Bridge (anteriormente Gesher).
XSTATE_MASK_AVX512 Extensión AVX-512
XSTATE_MASK_MPX Extensión MPX
XSTATE_MASK_AMX_TILE_CONFIG Extensión AMX (configuración)
XSTATE_MASK_AMX_TILE_DATA Extensión AMX (datos)

[out] XStateSave

Puntero a un búfer asignado por el autor de la llamada en el que la rutina escribe una estructura de XSTATE_SAVE. Esta estructura contiene la información de estado guardada para las características de procesador extendidas indicadas por el parámetro Mask de. El búfer debe ser lo suficientemente grande como para contener esta estructura.

Valor devuelto

KeSaveExtendedProcessorState devuelve STATUS_SUCCESS si la llamada se realiza correctamente. Entre los valores devueltos de error posibles se incluyen los siguientes:

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES
Error en una operación de asignación de memoria.

Observaciones

En los procesadores basados en x86 que admiten las instrucciones XSAVE y XRSTOR, estas instrucciones proporcionan un mecanismo flexible para guardar y restaurar la información de estado de procesador extendida. KeSaveExtendedProcessorState usa estas instrucciones si están disponibles.

Para restaurar el estado extendido del procesador guardado por KeSaveExtendedProcessorState, llame a la rutina keRestoreExtendedProcessorState.

El parámetro Mask especifica las características extendidas del procesador cuyo estado se va a guardar. Una KeRestoreExtendedProcessorState restaura solo el estado de procesador extendido guardado por el KeSaveExtendedProcessorState llamada que guardó el estado.

El código en modo kernel debe guardar el estado de una característica de procesador extendida antes de usar esa característica y debe restaurar el estado antes de salir.

Las rutinas de servicio de interrupción (ISR) se ejecutan con restricciones de tiempo graves que normalmente impiden que usen características extendidas del procesador. Sin embargo, un ISR puede programar una llamada a procedimiento diferido (DPC) que use una o varias características de procesador extendidas. La rutina DPC debe guardar y restaurar el estado de las características extendidas para conservar el contexto del programa interrumpido en cuyo espacio de direcciones de proceso se ejecuta la rutina.

Las keSaveFloatingPointState y KeRestoreFloatingPointState rutinas guardar y restaurar solo el estado de punto flotante (los registros x87/MMX) y el estado SSE.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows 7 y versiones posteriores de Windows.
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 también

KeRestoreExtendedProcessorState

keRestoreFloatingPointState

KeSaveFloatingPointState

RtlGetEnabledExtendedFeatures

XSTATE_SAVE