Функция
TlsGetValueФункция
TlsGetValue извлекает значение в локальной памяти (TLS) вызывающего потока слот (область памяти, занимаемые страницами) для заданного индекса TLS. Каждый поток процесса имеет свой собственный слот для каждого индекса локальной памяти потока (TLS).Синтаксис
TlsGetValue(
); |
Параметры
dwTlsIndex
[in] Индекс
TLS, который был назначен функцией TlsAlloc.Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - значение, сохраненное в слоте
TLS вызывающего потока, связанного с заданным индексом.Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получить дополнительные данные об ошибках, вызовите
GetLastError.
Обратите внимание! на то, что данные, сохраненные в слоте TLS, могут иметь значение нуль. В данном случае, величина возвращаемого значения является ноль и GetLastError возвращает значение NO_ERROR. |
Замечания
Индексы
TLS обычно назначаются при помощи функции TlsAlloc в ходе инициализации процесса или DLL. После назначения, каждый поток процесса может использовать индекс TLS для доступа к своему собственному слоту памяти TLS, который индексируется. Слот памяти для каждого потока инициализируется значениями ПУСТО (NULL). Поток определяет индекс TLS при вызове TlsSetValue, чтобы сохранить значение в своем слоте. Поток устанавливает тот же самый индекс при последующем вызове TlsGetValue, чтобы получить сохраненное значение.Функция
TlsGetValue была реализована, с первой целью, обеспечить быстродействие. Эти функции выполняют минимальную проверку правильности параметра и проверку ошибок. В частности эта функция завершается успешно, если dwTlsIndex находится в диапазоне от 0 до (TLS_MINIMUM_AVAILABLE - 1). Это зависит от программиста, который должен гарантировать, что индекс допустим.Функции, которые возвращают значение, обозначающее сбой, вызывают
SetLastError тогда, когда терпят неудачу. А вообще, когда они завершаются успешно, то не вызывают SetLastError. Функция TlsGetValue - исключение из этого общего правила. Функция TlsGetValue, когда она завершается успешно, вызывает SetLastError, чтобы очиститься от последней ошибки потока. Это позволяет произвести проверку свободного от ошибок поиска нулевых значений.Код примера
Пример смотри
Использование локальной памяти потока или Использование локальной памяти потока в динамически подключаемых библиотеках.Смотри также
Краткий обзор Процессы и потоки, Функции, используемые процессами и потоками, GetLastError, SetLastError, TlsAlloc, TlsFree, TlsSetValue
Размещение и совместимость TlsGetValue |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Kernel32.lib |
Заголовочный файл |
|
- объявлено в |
Winbase.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |