CommonLibSSE (powerof3)
NT.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "REX/W32/BASE.h"
4 
5 namespace REX::W32
6 {
7  struct EXCEPTION_REGISTRATION_RECORD;
8  struct PEB_LDR_DATA;
9  struct RTL_USER_PROCESS_PARAMETERS;
10  struct UNICODE_STRING;
11 
12  using PS_POST_PROCESS_INIT_ROUTINE = void (*)();
13 
14  struct LIST_ENTRY
15  {
16  struct LIST_ENTRY* fLink;
17  struct LIST_ENTRY* bLink;
18  };
19 
20  struct NT_TIB
21  {
22  EXCEPTION_REGISTRATION_RECORD* exceptionList;
23  void* stackBase;
24  void* stackLimit;
25  void* subSystemTib;
26  union
27  {
28  void* fiberData;
29  std::uint32_t version;
30  };
32  struct NT_TIB* self;
33  };
34 
35  struct PEB
36  {
37  std::byte reserved1[2];
38  std::byte beingDebugged;
39  std::byte reserved2[1];
40  void* reserved3[2];
43  void* reserved4[3];
45  void* reserved5;
46  std::uint32_t reserved6;
47  void* reserved7;
48  std::uint32_t reserved8;
49  std::uint32_t atlThunkSListPtr32;
50  void* reserved9[45];
51  std::byte reserved10[96];
53  std::byte reserved11[128];
54  void* reserved12[1];
55  std::uint32_t sessionID;
56  };
57 
58  struct PEB_LDR_DATA
59  {
60  std::byte reserved1[8];
61  void* reserved2[3];
63  };
64 
66  {
67  std::byte reserved1[16];
68  void* reserved2[10];
71  };
72 
73  struct TEB
74  {
75  void* reserved1[11];
78  void* reserved2[399];
79  std::byte reserved3[1952];
80  void* tlsSlots[64];
81  std::byte reserved4[8];
82  void* reserved5[26];
84  void* reserved6[4];
86  };
87 }
88 
89 namespace REX::W32
90 {
91  TEB* NtCurrentTeb() noexcept;
92 }
Definition: BSDirectInputManager.h:8
TEB * NtCurrentTeb() noexcept
void(*)() PS_POST_PROCESS_INIT_ROUTINE
Definition: NT.h:12
Definition: NT.h:15
struct LIST_ENTRY * bLink
Definition: NT.h:17
struct LIST_ENTRY * fLink
Definition: NT.h:16
Definition: NT.h:21
std::uint32_t version
Definition: NT.h:29
void * arbitraryUserPointer
Definition: NT.h:31
void * stackLimit
Definition: NT.h:24
void * stackBase
Definition: NT.h:23
void * fiberData
Definition: NT.h:28
void * subSystemTib
Definition: NT.h:25
EXCEPTION_REGISTRATION_RECORD * exceptionList
Definition: NT.h:22
Definition: NT.h:59
void * reserved2[3]
Definition: NT.h:61
LIST_ENTRY inMemoryOrderModuleList
Definition: NT.h:62
std::byte reserved1[8]
Definition: NT.h:60
Definition: NT.h:36
void * reserved5
Definition: NT.h:45
void * reserved7
Definition: NT.h:47
void * reserved3[2]
Definition: NT.h:40
std::byte reserved1[2]
Definition: NT.h:37
std::uint32_t reserved6
Definition: NT.h:46
std::uint32_t sessionID
Definition: NT.h:55
PEB_LDR_DATA * ldr
Definition: NT.h:41
void * reserved12[1]
Definition: NT.h:54
std::byte reserved2[1]
Definition: NT.h:39
std::uint32_t reserved8
Definition: NT.h:48
PS_POST_PROCESS_INIT_ROUTINE postProcessInitRoutine
Definition: NT.h:52
std::byte reserved10[96]
Definition: NT.h:51
void * atlThunkSListPtr
Definition: NT.h:44
std::byte beingDebugged
Definition: NT.h:38
void * reserved4[3]
Definition: NT.h:43
void * reserved9[45]
Definition: NT.h:50
std::byte reserved11[128]
Definition: NT.h:53
RTL_USER_PROCESS_PARAMETERS * processParameters
Definition: NT.h:42
std::uint32_t atlThunkSListPtr32
Definition: NT.h:49
void * reserved2[10]
Definition: NT.h:68
UNICODE_STRING commandLine
Definition: NT.h:70
UNICODE_STRING imagePathName
Definition: NT.h:69
std::byte reserved1[16]
Definition: NT.h:67
Definition: NT.h:74
void * reserved6[4]
Definition: NT.h:84
std::byte reserved3[1952]
Definition: NT.h:79
void * reserved5[26]
Definition: NT.h:82
std::byte reserved4[8]
Definition: NT.h:81
PEB * processEnvironmentBlock
Definition: NT.h:77
void * tlsSlots[64]
Definition: NT.h:80
void * tlsExpansionSlots
Definition: NT.h:85
void * reservedForOle
Definition: NT.h:83
void * reserved2[399]
Definition: NT.h:78
void * reserved1[11]
Definition: NT.h:75
void * threadLocalStoragePointer
Definition: NT.h:76
Definition: BASE.h:179