Win32 Thread Information Block

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;
}

  

posted @ 2013-10-13 13:39  LambdaTea  阅读(338)  评论(0编辑  收藏  举报