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 |
---|---|
|
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 |