TlsAlloc-Funktion (processthreadsapi.h)
Ordnet einen TLS-Index (Lokaler Threadspeicher) zu. Jeder Thread des Prozesses kann diesen Index anschließend verwenden, um lokale Werte für den Thread zu speichern und abzurufen, da jeder Thread einen eigenen Slot für den Index erhält.
Syntax
DWORD TlsAlloc();
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein TLS-Index. Die Slots für den Index werden mit 0 initialisiert.
Wenn die Funktion fehlschlägt, wird der Rückgabewert TLS_OUT_OF_INDEXES. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Windows Phone 8.1: Diese Funktion wird für Windows Phone Store-Apps unter Windows Phone 8.1 und höher unterstützt. Wenn eine Windows Phone Store-App diese Funktion aufruft, wird sie durch einen Inlineaufruf von FlsAlloc ersetzt. Die Funktionsdokumentation finden Sie unter FlsAlloc .
Windows 8.1, Windows Server 2012 R2 und Windows 10, Version 1507: Diese Funktion wird für Windows Store-Apps auf Windows 8.1, Windows Server 2012 R2 und Windows 10 version unterstützt. 1507. Wenn eine Windows Store-App diese Funktion aufruft, wird sie durch einen Inlineaufruf von FlsAlloc ersetzt. Die Funktionsdokumentation finden Sie unter FlsAlloc .
Windows 10, Version 1511 und Windows 10, Version 1607: Diese Funktion wird für Universelle Windows-Plattform-Apps (UWP) vollständig unterstützt und nicht mehr durch einen Inlineaufruf von FlsAlloc ersetzt.
Die Threads des Prozesses können den TLS-Index in nachfolgenden Aufrufen der Funktionen TlsFree, TlsSetValue oder TlsGetValue verwenden. Der Wert des TLS-Index sollte als undurchsichtiger Wert behandelt werden. Gehen Sie nicht davon aus, dass es sich um einen Index in ein nullbasiertes Array handelt.
TLS-Indizes werden in der Regel während der Prozess- oder DLL-Initialisierung (Dynamic Link Library) zugeordnet. Wenn ein TLS-Index zugeordnet wird, werden die Speicherslots auf NULL initialisiert. Nachdem ein TLS-Index zugewiesen wurde, kann jeder Thread des Prozesses ihn verwenden, um auf seinen eigenen TLS-Speicherslot zuzugreifen. Um einen Wert im TLS-Slot zu speichern, gibt ein Thread den Index in einem Aufruf von TlsSetValue an. Der Thread gibt denselben Index in einem nachfolgenden Aufruf von TlsGetValue an, um den gespeicherten Wert abzurufen.
TLS-Indizes sind nicht über Prozessgrenzen hinweg gültig. Eine DLL kann nicht davon ausgehen, dass ein in einem Prozess zugewiesener Index in einem anderen Prozess gültig ist.
Beispiele
Ein Beispiel finden Sie unter Verwenden des lokalen Threadspeichers oder Verwenden des lokalen Threadspeichers in einer Dynamic-Link-Bibliothek.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | processthreadsapi.h (einschließlich Windows.h unter Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Bibliothek | Kernel32.lib; WindowsPhoneCore.lib unter Windows Phone 8.1 |
DLL | KernelBase.dll am Windows Phone 8.1; Kernel32.dll |