TlsAlloc
9/8/2008
Essa função aloca um local segmento índice armazenamento (TLS). Qualquer segmento do processo pode usar este índice para armazenar e recuperar valores que são subseqüentemente local para o segmento.
Syntax
DWORD TlsAlloc(void);
Parameters
Nenhum.
Return Value
Um índice TLS indica sucesso. TLS_OUT_OF_INDEXES (0xFFFFFFFF) indica falha. Para informações de erro estendidas get, chamar GetLastError.
Remarks
Os segmentos do processo podem usar o índice TLS em chamadas subseqüentes para o TlsFree, TlsSetValueou TlsGetValue funções.
Índices TLS são geralmente alocado durante o processo ou inicialização DLL. Quando alocado, cada segmento do processo pode usar um índice TLS para acessar seu próprio slot armazenamento TLS. Para armazenar um valor em seu slot, um segmento especifica o índice em um chamar para TlsSetValue.
O segmento especifica o mesmo índice em um chamar subseqüente para TlsGetValue, para recuperar o valor armazenado.
A constante TLS_MINIMUM_AVAILABLE define o número mínimo de TLS índices disponível em cada processo. Este mínimo é garantia ser pelo menos 64 para todos os sistemas.
Índices TLS não são válido limites processo. Um DLL Não é possível presumir que um índice atribuído em um processo é válido em outro processo.
A seguinte lista mostra como um DLL pode usar TlsAlloc, TlsSetValue, TlsGetValue, e TlsFree:
- Quando um DLL anexa a um processo, o DLL usa TlsAlloc Para alocar um índice TLS. O DLL, em seguida, aloca dinâmico armazenamento e usa o índice TLS em um chamar para TlsSetValue Para armazenar o endereço no slot de TLS.
Isso conclui a por-inicialização segmento para o segmento inicial do processo. O índice TLS é armazenado em uma variável global ou estático da DLL. - Cada tempo de DLL anexa um novo segmento do processo, o DLL aloca dinâmico armazenamento para o novo segmento e usa o índice TLS em um chamar para TlsSetValue Para armazenar o endereço no slot de TLS.
Isso conclui a por-inicialização segmento para o novo segmento. - Cada tempo um segmento inicializado torna um DLL chamar exigir que os dados no seu dinâmico armazenamento, o DLL usa o índice TLS em um chamar para TlsGetValue Para recuperar o endereço do dinâmico armazenamento para esse segmento.
Para informações adicionais no segmento local armazenamento, consulte Kernel Overview.
Requirements
Header | winuser.h |
Library | coredll.lib |
Windows Embedded CE | Windows CE 1.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
Process and Thread Functions
TlsFree
TlsGetValue
TlsSetValue