KeSaveExtendedProcessorState, fonction (wdm.h)
La routine KeSaveExtendedProcessorState enregistre les informations d’état du processeur étendues.
Syntaxe
NTSTATUS KeSaveExtendedProcessorState(
[in] ULONG64 Mask,
[out] PXSTATE_SAVE XStateSave
);
Paramètres
[in] Mask
Masque de fonctionnalité 64 bits. Les bits de ce masque identifient les états de fonctionnalité de processeur étendu à enregistrer. Si un bit de masque est un, la routine enregistre l’état de la fonctionnalité identifiée par ce bit. Si un bit de masque est égal à zéro, l’état de la fonctionnalité correspondante n’est pas enregistré. Ce masque ne doit pas identifier les fonctionnalités de processeur étendues que le système d’exploitation n’a pas activées. Pour obtenir un masque des fonctionnalités activées, appelez la routine RtlGetEnabledExtendedFeatures routine.
Un appelant peut définir ce paramètre sur l’or au niveau du bit d’une ou plusieurs des XSTATE_MASK_ bits d’indicateur XXX suivants :
Valeur | Signification |
---|---|
XSTATE_MASK_LEGACY_FLOATING_POINT | Extension à virgule flottante (x87/MMX). |
XSTATE_MASK_LEGACY_SSE | Extension SIMD de diffusion en continu (SSE). |
XSTATE_MASK_LEGACY | Les extensions x87/MMX et SSE. |
XSTATE_MASK_GSSE | L’extension SSE Intel Sandy Bridge (anciennement Gesher). |
XSTATE_MASK_AVX512 | Extension AVX-512 |
XSTATE_MASK_MPX | Extension MPX |
XSTATE_MASK_AMX_TILE_CONFIG | Extension AMX (configuration) |
XSTATE_MASK_AMX_TILE_DATA | Extension AMX (données) |
[out] XStateSave
Pointeur vers une mémoire tampon allouée par l’appelant dans laquelle la routine écrit une structure XSTATE_SAVE. Cette structure contient les informations d’état enregistrées pour les fonctionnalités de processeur étendues indiquées par le paramètre Mask. La mémoire tampon doit être suffisamment grande pour contenir cette structure.
Valeur de retour
KeSaveExtendedProcessorState retourne STATUS_SUCCESS si l’appel réussit. Les valeurs de retour d’erreur possibles sont les suivantes :
Retourner le code | Description |
---|---|
|
Échec d’une opération d’allocation de mémoire. |
Remarques
Sur les processeurs x86 qui prennent en charge les instructions XSAVE et XRSTOR, ces instructions fournissent un mécanisme flexible pour enregistrer et restaurer les informations d’état du processeur étendu. KeSaveExtendedProcessorState utilise ces instructions s’ils sont disponibles.
Pour restaurer l’état du processeur étendu enregistré par KeSaveExtendedProcessorState, appelez la routine KeRestoreExtendedProcessorState.
Le paramètre Mask spécifie les fonctionnalités étendues du processeur dont l’état doit être enregistré. Un appel KeRestoreExtendedProcessorState restaure uniquement l’état du processeur étendu enregistré par le KeSaveExtendedProcessorState appel qui a enregistré l’état.
Le code en mode noyau doit enregistrer l’état d’une fonctionnalité de processeur étendue avant d’utiliser cette fonctionnalité, et il doit restaurer l’état avant de quitter.
Les routines de service d’interruption s’exécutent sous des contraintes de temps graves qui les empêchent généralement d’utiliser des fonctionnalités de processeur étendues. Toutefois, un ISR peut planifier un appel de procédure différé (DPC) qui utilise une ou plusieurs fonctionnalités de processeur étendues. La routine DPC doit enregistrer et restaurer l’état des fonctionnalités étendues pour conserver le contexte du programme interrompu dans lequel le processus traite l’espace d’exécution de la routine.
Les routines KeSaveFloatingPointState et KeRestoreFloatingPointState enregistrent et restaurent uniquement l’état à virgule flottante (registres x87/MMX) et l’état SSE.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows 7 et versions ultérieures de Windows. |
plateforme cible | Universel |
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
bibliothèque | Ntoskrnl.lib |
DLL | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |