TlsAlloc |
kernel32.dll | Alloue TLS |
---|---|---|
Windows 9X, NT 3.1+, 2000, XP, 2003 |
Syntaxe
DWORD TlsAlloc(VOID); |
Retour
Valeur | Description |
---|---|
0xFFFFFFFF | Cette valeur permet d'indiquer que la fonction a échoué. Pour obtenir des informations d'erreur étendues, appelez la fonction GetLastError. |
0 != | Ces valeurs permettent d'indiquer un index TLS. |
Description
Cette fonction permet d'allouer un processus léger d'entreposage d'index locale (TLS).
Remarques
- Les processus léger du processus peuvent utiliser l'index TLS lors d'appels ultérieurs aux fonctions TlsFree, TlsSetValue ou TlsGetValue.
- Les index TLS sont généralement alloués lors de l'initialisation du processus ou de la bibliothèque de liens dynamiques (DLL). Une fois alloué, chaque processus léger du processus peut utiliser un index TLS pour accéder à son propre emplacement d'entreposage TLS. Pour entreposer une valeur dans son emplacement, un processus léger spécifie l'index dans un appel à TlsSetValue. L'unité d'exécution spécifie le même index lors d'un appel ultérieur à TlsGetValue, afin de récupérer la valeur entreposée.
- La constante TLS_MINIMUM_AVAILABLE définit le nombre minimum d'index TLS disponibles dans chaque processus. Ce minimum est garanti d'au moins 64 pour tous les systèmes.
- Les index TLS ne sont pas valides entre les processus. Une DLL ne peut pas supposer qu'un index attribué dans un processus est valide dans un autre processus.
- Une DLL peut utiliser TlsAlloc, TlsSetValue, TlsGetValue et TlsFree comme suit :
- Lorsqu'une DLL est attachée à un processus, elle utilise TlsAlloc pour allouer un index TLS. La DLL alloue ensuite de l'entreposage dynamique et utilise l'index TLS dans un appel à TlsSetValue pour entreposer l'adresse dans le logement TLS. Cette situation conclut l'initialisation par processus léger pour le processus léger initial du processus. L'index TLS est entreposé dans une variable globale ou statique de la DLL.
- Chaque fois que la DLL se connecte à un nouveau processus léger du processus, elle alloue de l'entreposage dynamique pour le nouveau processus léger et utilise l'index TLS dans un appel à TlsSetValue pour entreposer l'adresse dans le logement TLS. Cette situation termine l'initialisation par processus léger pour le nouveau processus léger.
- Chaque fois qu'un processus léger initialisé effectue un appel DLL nécessitant les données dans son entreposage dynamique, la DLL utilise l'index TLS dans un appel à TlsGetValue pour récupérer l'adresse de l'entreposage dynamique pour ce processus léger.
Voir également
Langage de programmation - C pour Windows - API de Windows - TlsFree
Langage de programmation - C pour Windows - API de Windows - TlsGetValue
Langage de programmation - C pour Windows - API de Windows - TlsSetValue
Dernière mise à jour : Dimanche, le 6 décembre 2015