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ística 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 llamador 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 . El búfer debe ser lo suficientemente grande como para contener esta estructura.

Valor devuelto

KeSaveExtendedProcessorState devuelve STATUS_SUCCESS si la llamada es correcta. 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.

Comentarios

En procesadores basados en x86 que admiten las instrucciones XSAVE y XRSTOR, estas instrucciones proporcionan un mecanismo flexible para guardar y restaurar información de estado de procesador extendido. 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 llamada KeRestoreExtendedProcessorState restaura solo el estado de procesador extendido que guardó la llamada KeSaveExtendedProcessorState 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 bajo 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 rutinas KeSaveFloatingPointState y KeRestoreFloatingPointState guardan y restauran solo el estado de punto flotante (los registros x87/MMX) y el estado SSE.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 7 y versiones posteriores de Windows.
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 también

KeRestoreExtendedProcessorState

KeRestoreFloatingPointState

KeSaveFloatingPointState

RtlGetEnabledExtendedFeatures

XSTATE_SAVE