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