TlsSetValue 関数 (processthreadsapi.h)
指定した TLS インデックスの呼び出し元スレッドのスレッド ローカル ストレージ (TLS) スロットに値を格納します。 プロセスの各スレッドには TLS インデックスごとに専用のスロットがあります。
構文
BOOL TlsSetValue(
[in] DWORD dwTlsIndex,
[in, optional] LPVOID lpTlsValue
);
パラメーター
[in] dwTlsIndex
TlsAlloc 関数によって割り当てられた TLS インデックス。
[in, optional] lpTlsValue
インデックスの呼び出し元スレッドの TLS スロットに格納される値。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
Windows Phone 8.1: この関数は、Windows Phone 8.1 以降のWindows Phone ストア アプリでサポートされています。 Windows Phone ストア アプリがこの関数を呼び出すと、FlsSetValue のインライン呼び出しに置き換えられます。 関数のドキュメントについては、 FlsSetValue を参照してください。
Windows 8.1、Windows Server 2012 R2、Windows 10 バージョン 1507: この関数は、Windows 8.1、Windows Server 2012 R2、Windows 10、バージョンの Windows ストア アプリでサポートされています1507. Windows ストア アプリがこの関数を呼び出すと、 FlsSetValue のインライン呼び出しに置き換えられます。 関数のドキュメントについては、 FlsSetValue を参照してください。
Windows 10、バージョン 1511および Windows 10 バージョン 1607: この関数は、ユニバーサル Windows プラットフォーム (UWP) アプリで完全にサポートされており、FlsSetValue のインライン呼び出しに置き換えられなくなりました。
TLS インデックスは通常、プロセスまたは DLL の初期化中に TlsAlloc 関数によって割り当てられます。 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 の Windows.h を含む) |
Library | Kernel32.lib;Windows Phone 8.1 の WindowsPhoneCore.lib |
[DLL] | Windows Phone 8.1 で KernelBase.dll。Kernel32.dll |