【发布时间】:2016-08-22 04:45:19
【问题描述】:
线程信息块应该广为人知,可用于访问一些重要信息。但是我可以用它来保存数据吗?
我已经看到该结构在偏移量 14h (x86) / 28h (x86-64) 处有一个任意指针的插槽。
我可以使用这个指针从我自己的调度程序中指向我自己的线程结构吗?还是被其他东西覆盖了?
【问题讨论】:
线程信息块应该广为人知,可用于访问一些重要信息。但是我可以用它来保存数据吗?
我已经看到该结构在偏移量 14h (x86) / 28h (x86-64) 处有一个任意指针的插槽。
我可以使用这个指针从我自己的调度程序中指向我自己的线程结构吗?还是被其他东西覆盖了?
【问题讨论】:
您可以使用TlsAlloc() 函数来分配线程本地存储。每个 TLS 索引都可以保存一个指针大小的值,因此如果需要,您可以使用 TLS 槽来指向更大的已分配数据结构。
有关示例,请参阅 Using Thread Local Storage。
【讨论】:
TlsFree()'ing 插槽来覆盖它。