http://en.wikipedia.org/wiki/Win32_Thread_Information_Block
FS:[0x18]4Win9x and NTLinear address of TIB
// gcc (AT&T-style inline assembly). void *getTIB() { void *pTib; __asm__("movl %%fs:0x18, %0" : "=r" (pTib) : : ); return pTib; } // Microsoft C void *getTib() { void *pTib; __asm { mov EAX, FS:[0x18] mov [pTib], EAX } return pTib; } // Using Microsoft's intrinsics instead of inline assembly void *getTib() { void *pTib = ( void * ) __readfsdword( 0x18 ); return pTib; }