ReactOS 0.4.16-dev-303-g11d5cb8
inline_ntcurrentteb.h File Reference

Go to the source code of this file.

Functions

FORCEINLINE struct _TEBNtCurrentTeb (VOID)
 

Function Documentation

◆ NtCurrentTeb()

FORCEINLINE struct _TEB * NtCurrentTeb ( VOID  )

Definition at line 8 of file inline_ntcurrentteb.h.

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}
#define ULONG_PTR
Definition: config.h:101
PPC_QUAL unsigned long __readfsdword(const unsigned long Offset)
Definition: intrin_ppc.h:382
#define CP15_TPIDRURW
Definition: ketypes.h:131
Definition: compat.h:836
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255