Поделиться через


Функция TlsAlloc (processthreadsapi.h)

Выделяет индекс локального хранилища потока (TLS). Любой поток процесса может впоследствии использовать этот индекс для хранения и извлечения значений, которые являются локальными для потока, так как каждый поток получает свой собственный слот для индекса.

Синтаксис

DWORD TlsAlloc();

Возвращаемое значение

Если функция выполнена успешно, возвращаемым значением будет индекс TLS. Слоты для индекса инициализируются нулевым значением.

Если функция завершается сбоем, возвращаемое значение будет TLS_OUT_OF_INDEXES. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Windows Phone 8.1. Эта функция поддерживается для приложений магазина Windows Phone в Windows Phone 8.1 и более поздних версий. Когда приложение магазина Windows Phone вызывает эту функцию, она заменяется встроенным вызовом FlsAlloc. Документацию по функциям см. в разделе FlsAlloc .

Windows 8.1, Windows Server 2012 R2 и Windows 10 версии 1507: эта функция поддерживается для приложений Магазина Windows в Windows 8.1, Windows Server 2012 R2 и Windows 10 версии 1507. Когда приложение Магазина Windows вызывает эту функцию, оно заменяется встроенным вызовом FlsAlloc. Документацию по функциям см. в разделе FlsAlloc .

Windows 10 версии 1511 и Windows 10 версии 1607: эта функция полностью поддерживается для приложений универсальная платформа Windows (UWP) и больше не заменяется встроенным вызовом FlsAlloc.

Потоки процесса могут использовать индекс TLS в последующих вызовах функций TlsFree, TlsSetValue или TlsGetValue . Значение индекса TLS должно рассматриваться как непрозрачное значение; не предполагается, что это индекс в отсчитываемом от нуля массиве.

Индексы TLS обычно выделяются во время инициализации процесса или библиотеки динамической компоновки (DLL). При выделении индекса TLS его слоты хранения инициализируются значением NULL. После выделения индекса TLS каждый поток процесса может использовать его для доступа к собственному слоту хранилища TLS. Чтобы сохранить значение в своем слоте TLS, поток задает индекс в вызове TlsSetValue. Поток задает тот же индекс при последующем вызове TlsGetValue, чтобы получить сохраненное значение.

Индексы TLS недопустимы между границами процесса. Библиотека DLL не может предполагать, что индекс, назначенный в одном процессе, является допустимым в другом процессе.

Примеры

Пример см. в разделе Использование локального хранилища потока или Использование локального хранилища потока в библиотеке Dynamic-Link.

Требования

Требование Значение
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header processthreadsapi.h (включая Windows.h в Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Библиотека Kernel32.lib; WindowsPhoneCore.lib на Windows Phone 8.1
DLL KernelBase.dll Windows Phone 8.1; Kernel32.dll

См. также раздел

Функции процессов и потоков

локальное хранилище потока

TlsFree

TlsGetValue

TlsSetValue

API-интерфейсы Vertdll, доступные в анклавах VBS