Partager via


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

Voir aussi

KeRestoreExtendedProcessorState

KeRestoreFloatingPointState

KeSaveFloatingPointState

RtlGetEnabledExtendedFeatures

XSTATE_SAVE