TlsAlloc

スレッドローカルストレージ (TLS) インデックスを割り当てる。プロセスの任意のスレッドが、以後そのインデックスを使ってスレッド固有の値を格納・取得できる。各スレッドはそのインデックス用の独自スロットを受け取る。

TlsAlloc

(プラグイン / モジュール : kernel32.dll)

解説

スレッドローカルストレージ (TLS)
インデックスを割り当てる。プロセスの任意のスレッドが、以後そのインデックスを使ってスレッド固有の値を格納・取得できる。各スレッドはそのインデックス用の独自スロットを受け取る。

[戻り値]
関数が成功した場合、戻り値は TLS インデックス。インデックスのスロットは 0 に初期化される。関数が失敗した場合、戻り値は
TLS_OUT_OF_INDEXES。拡張エラー情報を取得するには GetLastError を呼ぶ。

[備考]
Windows Phone 8.1: 本関数は Windows Phone 8.1 以降の Windows Phone
ストアアプリでサポートされる。Windows Phone ストアアプリが本関数を呼ぶと、FlsAlloc
へのインライン呼び出しに置換される。詳細は FlsAlloc を参照。Windows 8.1、Windows Server 2012
R2、Windows 10 version 1507: 本関数は Windows ストアアプリでサポートされる。Windows
ストアアプリが呼ぶと FlsAlloc へのインライン呼び出しに置換される。Windows 10 version 1511 以降:
本関数は UWP アプリで完全にサポートされ、もはや FlsAlloc に置換されない。プロセスのスレッドはその後 TLS インデックスを
TlsFreeTlsSetValueTlsGetValue で使用できる。TLS インデックスの値は不透明値として扱い、0
起点配列のインデックスとは仮定しないこと。TLS インデックスは通常プロセスや DLL
初期化中に割り当てる。割り当てられた直後、その格納スロットは NULL に初期化される。割り当て後、プロセスの各スレッドはその TLS
スロットへのアクセスにそのインデックスを使える。スレッドは TlsSetValue にインデックスを指定して TLS
スロットに値を格納し、後の TlsGetValue で取り出す。TLS インデックスはプロセス境界を越えて有効ではない。DLL
は、あるプロセスで割り当てられたインデックスが別プロセスで有効と仮定してはならない。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs