Partager via


InitializeContext2, fonction (winbase.h)

Initialise une structure CONTEXT à l’intérieur d’une mémoire tampon avec la taille et l’alignement nécessaires, avec l’option permettant de spécifier un masque de compactage XSTATE.

Syntaxe

BOOL InitializeContext2(
  [out, optional] PVOID    Buffer,
                  DWORD    ContextFlags,
  [out, optional] PCONTEXT *Context,
  [in, out]       PDWORD   ContextLength,
                  ULONG64  XStateCompactionMask
);

Paramètres

[out, optional] Buffer

Pointeur vers une mémoire tampon dans laquelle initialiser une structure CONTEXT . Ce paramètre peut être NULL pour déterminer la taille de mémoire tampon requise pour contenir un enregistrement de contexte avec le ContextFlags spécifié.

ContextFlags

Valeur indiquant quelles parties de la structure de contexte doivent être initialisées. Ce paramètre influence la taille de la structure de contexte initialisée.

NotezCONTEXT_XSTATE ne fait pas partie de CONTEXT_FULL ou de CONTEXT_ALL. Elle doit être spécifiée séparément si un contexte XState est souhaité.
 

[out, optional] Context

Pointeur vers une variable qui reçoit l’adresse de la structure CONTEXT initialisée dans la mémoire tampon.

Note En raison des exigences d’alignement des structures CONTEXT , la valeur retournée dans Le contexte peut ne pas être au début de la mémoire tampon fournie.
 

[in, out] ContextLength

Lors de l’entrée, spécifie la longueur de la mémoire tampon vers laquelle pointe la mémoire tampon, en octets. Si la mémoire tampon n’est pas suffisamment grande pour contenir les parties spécifiées du CONTEXT, la fonction échoue, GetLastError retourne ERROR_INSUFFICIENT_BUFFER et ContextLength est défini sur la taille requise de la mémoire tampon. Si la fonction échoue avec une erreur autre que ERROR_INSUFFICIENT_BUFFER, le contenu de ContextLength n’est pas défini.

XStateCompactionMask

Fournit le masque de compactage XState à utiliser lors de l’allocation de la structure de contexte . Ce paramètre est utilisé uniquement lorsque CONTEXT_XSTATE est fourni à ContextFlags et que le système a XState activé en mode compactage.

Valeur de retour

Cette fonction retourne TRUE si elle réussit, sinon FALSE. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Remarques

InitializeContext peut être utilisé pour initialiser une structure CONTEXT dans une mémoire tampon avec les caractéristiques d’alignement et de taille requises. Cette routine est requise si la CONTEXT_XSTATEContextFlag est spécifiée, car la taille et l’alignement du contexte requis peuvent changer en fonction des fonctionnalités du processeur activées sur le système.

Tout d’abord, appelez cette fonction avec le paramètre ContextFlags défini sur le nombre maximal de fonctionnalités que vous utiliserez et le paramètre Buffer sur NULL. La fonction retourne la taille de mémoire tampon requise en octets dans le paramètre ContextLength . Allouez suffisamment d’espace pour les données dans la mémoire tampon et appelez à nouveau la fonction pour initialiser le contexte. Une fois cette routine terminée, le membre ContextFlags de la structure context est initialisé, mais le contenu restant de la structure n’est pas défini. Certains bits spécifiés dans le paramètre ContextFlags peuvent ne pas être définis dans Context-ContextFlags> s’ils ne sont pas pris en charge par le système. Les applications peuvent par la suite supprimer, mais ne doivent jamais ajouter de bits du membre ContextFlags de CONTEXT.

Windows 7 avec SP1 et Windows Server 2008 R2 avec SP1 : L’API AVX est d’abord implémentée sur Windows 7 avec SP1 et Windows Server 2008 R2 avec SP1 . Étant donné qu’il n’existe aucun kit SDK pour SP1, cela signifie qu’il n’y a pas d’en-têtes et de fichiers de bibliothèque disponibles à utiliser. Dans ce cas, un appelant doit déclarer les fonctions nécessaires à partir de cette documentation et obtenir des pointeurs vers ceux-ci à l’aide de GetModuleHandle sur «Kernel32.dll», suivi d’appels à GetProcAddress. Pour plus d’informations, consultez Utilisation du contexte XState .

Lorsque XState est activé en mode compactage, la spécification d’un XStateCompactionMask qui contient uniquement un sous-ensemble des composants XState activés peut réduire la taille de mémoire tampon requise pour stocker le contexte. Cela est particulièrement utile si le système a de nombreux composants XState activés, mais que le contexte sera utilisé uniquement pour affecter un petit nombre de composants XState. L’ensemble complet de composants XState activés peut être obtenu en appelant GetEnabledXStateFeatures. Cette fonction copie le masque de compactage XState spécifié dans l’emplacement approprié dans l’en-tête XState.

Exigences

Exigence Valeur
Client minimum requis Windows 10 Build 20348
Serveur minimal pris en charge Windows 10 Build 20348
Header winbase.h
Library noyau32. Lib

Voir aussi

CONTEXT

CopyContext

Intel AVX

Utilisation du contexte XState