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 |