TlsGetValue

【勇芳软件工作室】汉化HomePreviousNext

TlsGetValue函数检索调用线程的线程本地存储(TLS)插槽中指定TLS索引的值。进程的每个线程都有自己的每个TLS索引的插槽。

LPVOID TlsGetValue(af

DWORD 【dwTlsIndex】// TLS索引来检索值
); 

参数

【dwTlsIndex】

指定由TlsAlloc函数分配的TLS索引。

返回值

如果函数成功,则返回值是存储在与指定索引关联的调用线程的TLS插槽中的值。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

请注意,存储在TLS插槽中的数据可以具有零值。在这种情况下,返回值为零,GetLastError返回NO_ERROR。

备注

在进程或DLL初始化期间,TLS索引通常由TlsAlloc函数分配。一旦分配,进程的每个线程可以使用TLS索引访问该索引的自己的TLS存储槽。每个线程的存储槽被初始化为NULL。线程在调用TlsSetValue中指定TLS索引,以在其插槽中存储值。线程在后续调用TlsGetValue中指定相同的索引,以检索存储的值。

TlsSetValueTlsGetValue以速度实现为主要目标。这些功能执行最小的参数验证和错误检查。特别地,如果【dwTlsIndex】在0到(TLS_MINIMUM_AVAILABLE - 1)的范围内,则此函数成功。程序员必须确保索引有效。

当Win32功能失败时返回失败的指示SetLastError.他们通常不会在成功时调用SetLastError.TlsGetValue功能是此一般规则的例外。TlsGetValue函数调用SetLastError以便在成功时清除线程的最??后一个错误。这样可以检查NULL值的无差错检索。

也可以看看

GetLastError, SetLastError, TlsAlloc, TlsFree, TlsSetValue