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 la mémoire tampon requise pour contenir un enregistrement de contexte avec le ContextFlags spécifié.

ContextFlags

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

RemarqueCONTEXT_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 latampon .

Remarque En raison des exigences d’alignement des structures CONTEXT , la valeur retournée dans 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 pointée par tampon, en octets. Si la mémoire tampon n’est pas suffisamment grande pour contenir les parties spécifiées de l'CONTEXT, la fonction échoue, GetLastError retourne ERROR_INSUFFICIENT_BUFFERet 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 Context . 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 pouvez ê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 le CONTEXT_XSTATEContextFlag est spécifié, 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 de mémoire tampon pour 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 le de mémoire tampon et appelez à nouveau la fonction pour initialiser lede contexte . Une fois cette routine terminée, le ContextFlags membre 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 de contexte ->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 ContextFlags membre de CONTEXT.

Windows 7 avec SP1 et Windows Server 2008 R2 avec SP1 : l'l’API AVX est implémentée pour la première fois 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 eux à 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 diminuer 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 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 pris en charge Windows 10 Build 20348
serveur minimum pris en charge Windows 10 Build 20348
d’en-tête winbase.h

Voir aussi

CONTEXT

CopyContext

Intel AVX

utilisation de l' de contexte XState