TlsAlloc, fonction (processthreadsapi.h)

Alloue un index de stockage local de thread (TLS). N’importe quel thread du processus peut ensuite utiliser cet index pour stocker et récupérer les valeurs locales du thread, car chaque thread reçoit son propre emplacement pour l’index.

Syntaxe

DWORD TlsAlloc();

Valeur de retour

Si la fonction réussit, la valeur de retour est un index TLS. Les emplacements de l’index sont initialisés à zéro.

Si la fonction échoue, la valeur de retour est TLS_OUT_OF_INDEXES. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Windows Phone 8.1 : cette fonction est prise en charge pour les applications Windows Phone Store sur Windows Phone 8.1 et versions ultérieures. Lorsqu’une application Windows Phone Store appelle cette fonction, elle est remplacée par un appel inline à FlsAlloc. Reportez-vous à FlsAlloc pour la documentation des fonctions.

Windows 8.1, Windows Server 2012 R2 et Windows 10, version 1507 : cette fonction est prise en charge pour les applications du Windows Store sur Windows 8.1, Windows Server 2012 R2 et Windows 10, version 1507. Lorsqu’une application du Windows Store appelle cette fonction, elle est remplacée par un appel inline à FlsAlloc. Reportez-vous à FlsAlloc pour la documentation des fonctions.

Windows 10, version 1511 et Windows 10, version 1607 : cette fonction est entièrement prise en charge pour les applications plateforme Windows universelle (UWP) et n’est plus remplacée par un appel inline à FlsAlloc.

Les threads du processus peuvent utiliser l’index TLS dans les appels suivants aux fonctions TlsFree, TlsSetValue ou TlsGetValue . La valeur de l’index TLS doit être traitée comme une valeur opaque ; ne supposez pas qu’il s’agit d’un index dans un tableau de base zéro.

Les index TLS sont généralement alloués lors de l’initialisation de processus ou de bibliothèque de liens dynamiques (DLL). Lorsqu’un index TLS est alloué, ses emplacements de stockage sont initialisés sur NULL. Une fois qu’un index TLS a été alloué, chaque thread du processus peut l’utiliser pour accéder à son propre emplacement de stockage TLS. Pour stocker une valeur dans son emplacement TLS, un thread spécifie l’index dans un appel à TlsSetValue. Le thread spécifie le même index dans un appel ultérieur à TlsGetValue, pour récupérer la valeur stockée.

Les index TLS ne sont pas valides au-delà des limites de processus. Une DLL ne peut pas supposer qu’un index affecté dans un processus est valide dans un autre processus.

Exemples

Pour obtenir un exemple, consultez Utilisation du stockage local de thread ou Utilisation du stockage local de threads dans une bibliothèque Dynamic-Link.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête processthreadsapi.h (inclure Windows.h sur Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Bibliothèque Kernel32.lib ; WindowsPhoneCore.lib sur Windows Phone 8.1
DLL KernelBase.dll sur Windows Phone 8.1 ; Kernel32.dll

Voir aussi

Fonctions de processus et de thread

stockage local des threads

TlsFree

TlsGetValue

TlsSetValue

API Vertdll disponibles dans les enclaves VBS