TlsSetValue 函式 (processthreadsapi.h)

將值儲存在呼叫線程的線程本機記憶體中, (TLS) 位置的指定 TLS 索引。 處理序的每個執行緒都有自己專用於每個 TLS 索引的位置。

語法

BOOL TlsSetValue(
  [in]           DWORD  dwTlsIndex,
  [in, optional] LPVOID lpTlsValue
);

參數

[in] dwTlsIndex

由 TlsAlloc 函式配置的 TLS 索引。

[in, optional] lpTlsValue

要儲存在索引之呼叫線程 TLS 位置中的值。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

Windows Phone 8.1:Windows Phone 8.1 和更新版本上的 Windows Phone Store 應用程式支援此函式。 當 Windows Phone Store 應用程式呼叫此函式時,會以 FlsSetValue 的內嵌呼叫取代它。 如需函式檔,請參閱 FlsSetValue

Windows 8.1Windows Server 2012 R2Windows 10 1507 版:Windows 8.1、Windows Server 2012 R2 和 Windows 10 版本支援 Windows 市集應用程式1507. 當 Windows 市集應用程式呼叫此函式時,它會取代為 FlsSetValue 的內嵌呼叫。 如需函式檔,請參閱 FlsSetValue

Windows 10 版本 1511Windows 10 1607 版:通用 Windows 平台 (UWP) app 完全支援此函式,不再取代為 FlsSetValue 的內嵌呼叫。

TLS 索引通常會由 TlsAlloc 函式在進程或 DLL 初始化期間配置。 配置 TLS 索引時,其儲存位置會初始化為 NULL。 配置 TLS 索引之後,進程的每個線程都可以使用它來存取該索引自己的 TLS 位置。 線程會在呼叫 TlsSetValue 時指定 TLS 索引,以在其位置中儲存值。 線程會在後續對 TlsGetValue 的呼叫中指定相同的索引,以擷取預存的值。

TlsSetValue 是以速度作為主要目標實作。 函式會執行最少的參數驗證和錯誤檢查。 特別是,如果 dwTlsIndex 位於範圍 0 到 (TLS_MINIMUM_AVAILABLE – 1) ,就會成功。 程序設計人員必須先確定索引在呼叫 TlsGetValue 之前有效。

範例

如需範例,請參閱在 Dynamic-Link 連結庫中 使用線程本機記憶體 或使用 線程本機記憶體

規格需求

需求
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 processthreadsapi.h (包含 Windows Vista、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

另請參閱

處理序和執行緒函式

線程本機記憶體

TlsAlloc

TlsFree

TlsGetValue

VBS 記憶體保護區中可用的 Vertdll API