Функция TlsGetValue

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

Синтаксис

LPVOID TlsGetValue(

DWORD dwTlsIndex   // индекс TLS

);

Параметры

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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz