Reactos
at listview 31 lines 712 B view raw
1#ifndef _INLINE_NT_CURRENTTEB_H_ 2#define _INLINE_NT_CURRENTTEB_H_ 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8FORCEINLINE struct _TEB * NtCurrentTeb(VOID) 9{ 10#if defined(_M_IX86) 11 return (struct _TEB *)__readfsdword(0x18); 12#elif defined(_M_AMD64) 13 return (struct _TEB *)__readgsqword(FIELD_OFFSET(NT_TIB, Self)); 14#elif defined(_M_ARM) 15 // return (struct _TEB *)KeGetPcr()->Used_Self; 16 return (struct _TEB *)(ULONG_PTR)_MoveFromCoprocessor(CP15_TPIDRURW); 17#elif defined (_M_ARM64) 18 //UNIMPLEMENTED; 19 return 0; 20// #elif defined(_M_PPC) 21// return (struct _TEB *)_read_teb_dword(0x18); 22#else 23#error Unsupported architecture 24#endif 25} 26 27#ifdef __cplusplus 28} 29#endif 30 31#endif // _INLINE_NT_CURRENTTEB_H_