b'\n_START_ARTICLE_\nWin32 Thread Information Block\n_START_PARAGRAPH_\nO Win32 Thread Information Block (TIB) \xc3\xa9 uma estrutura de dados em Win32 no x86 que guarda informa\xc3\xa7\xc3\xb5es sobre um thread em execu\xc3\xa7\xc3\xa3o. essa estrutura tamb\xc3\xa9m \xc3\xa9 conhecida como Thread Environment Block (TEB)._NEWLINE_O TIB n\xc3\xa3o \xc3\xa9 oficialmente documentado para o Windows 9x. O DDK da s\xc3\xa9rie de Windows NT inclui a estrutura NT_TIB no ficheiro de cabe\xc3\xa7alho winnt.h que documenta a parte independente do subsistema. O programa Wine inclui declara\xc3\xa7\xc3\xb5es para (a parte espec\xc3\xadfica do subsistema de) TIB. Mas tantos programas para Win32 utilizam esses campos n\xc3\xa3o documentados que s\xc3\xa3o efetivamente parte da API. O primeiro campo em particular, \xc3\xa9 diretamente referenciado pelo c\xc3\xb3digo produzido pelo pr\xc3\xb3prio compilador da Microsoft.\n_START_SECTION_\nAcessando TIB\n_START_PARAGRAPH_\nPode ser acedido como offset do registo de segmento FS._NEWLINE_N\xc3\xa3o \xc3\xa9 habitual aceder aos campos do TIB atrav\xc3\xa9s do endere\xc3\xa7amento de FS:[0], mas sim obtendo um ponteiro de auto-refer\xc3\xaancia alocado em FS:[0x18]._NEWLINE_Exemplos em C com assembly inline para 32-bit x86:_NEWLINE_// gcc (estilo AT&T inline assembly).void *getTIB(){_NEWLINE_    void *pTib;_NEWLINE_    __asm__("movl %%fs:0x18, %0" : "=r" (pTib) : : );_NEWLINE_    return pTib;}_NEWLINE_// Microsoft Cvoid *getTib(){_NEWLINE_    void *pTib;_NEWLINE_    __asm {_NEWLINE_        mov EAX, FS:[0x18]_NEWLINE_        mov [pTib], EAX_NEWLINE_    }_NEWLINE_    return pTib;}_NEWLINE_void *getTib(){_NEWLINE_    void *pTib = ( void * ) __readfsdword( 0x18 );_NEWLINE_    return pTib;}'