TlsAlloc 函式 (processthreadsapi.h)
配置線程本機記憶體 (TLS) 索引。 進程的任何線程後續都可以使用此索引來儲存和擷取線程本機的值,因為每個線程都會收到自己的索引位置。
Syntax
DWORD TlsAlloc();
傳回值
如果函式成功,則傳回值為 TLS 索引。 索引的位置會初始化為零。
如果函式失敗,傳回值會 TLS_OUT_OF_INDEXES。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
Windows Phone 8.1:Windows Phone 8.1 和更新版本上的 Windows Phone Store 應用程式支援此函式。 當 Windows Phone Store 應用程式呼叫此函式時,它會取代為 FlsAlloc 的內嵌呼叫。 如需函式檔,請參閱 FlsAlloc 。
Windows 8.1、Windows Server 2012 R2 和 Windows 10 1507 版:Windows 市集應用程式支援此功能,Windows 8.1、Windows Server 2012 R2 和 Windows 10 版本1507. 當 Windows 市集應用程式呼叫此函式時,它會取代為 FlsAlloc 的內嵌呼叫。 如需函式檔,請參閱 FlsAlloc 。
Windows 10 版本 1511 和 Windows 10 1607 版:通用 Windows 平台 (UWP) 應用程式完全支援此函式,不再取代為 FlsAlloc 的內嵌呼叫。
進程的線程可以在後續對 TlsFree、 TlsSetValue 或 TlsGetValue 函式的呼叫中使用 TLS 索引。 TLS 索引的值應該視為不透明值;請勿假設它是以零起始數位的索引。
TLS 索引通常會在進程或動態連結庫期間配置, (DLL) 初始化。 配置 TLS 索引時,其儲存位置會初始化為 NULL。 配置 TLS 索引之後,進程的每個線程都可以使用它來存取自己的 TLS 儲存位置。 若要將值儲存在其 TLS 位置中,線程會在 呼叫 TlsSetValue 時指定索引。 線程會在後續呼叫 TlsGetValue 時指定相同的索引,以擷取預存值。
跨進程界限的 TLS 索引無效。 DLL 無法假設某個進程中指派的索引在另一個進程中有效。
範例
如需範例,請參閱在 Dynamic-Link 連結庫中 使用線程本機記憶體 或使用 線程本機記憶體。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | processthreadsapi.h (包括 Windows Vista 上的 Windows.h、Windows 7、Windows Server 2008 Windows Server 2008 R2) |
程式庫 | Kernel32.lib;Windows Phone 8.1 上的 WindowsPhoneCore.lib |
Dll | Windows Phone 8.1 上的 KernelBase.dll;Kernel32.dll |