スレッド・ローカル・ストレージ (TLS) を使用すると、スレッドごとのデータを格納することができます。TLS は、マルチスレッド・プロセス中の個々のスレッドが、スレッド特有のデータを格納するための場所を割り当てることができる手段です。
動的に割り当てられた (ランタイムの) スレッド特有のデータは、TlsAlloc (格納されたデータにインデックスを割り当てる)、TlsGetValue (インデックスから値を取り出す)、TlsSetValue (インデックスに値を格納する)、および TlsFree (ダイナミック・ストレージを解放する) などのルーチンによってサポートされます。スレッドはダイナミック・ストレージを割り当て、TlsSetValue を使用してインデックスにそのストレージへのポインターを関連付けます。そのストレージを参照する必要が生じたら、スレッドはインデックスを指定して TlsGetValue を呼び出します。
すべてのスレッドがインデックスの使用を終えると、TlsFree はダイナミック・ストレージを解放します。