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

  

原文地址:https://www.cnblogs.com/lambdatea/p/3366611.html