BlackBone
Windows memory hacking library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
NativeStructs8.h
Go to the documentation of this file.
1 #pragma once
2 
3 //
4 // Native structures W8 x64
5 //
6 #pragma warning(disable : 4214 4201)
7 
8 struct _MMVAD_FLAGS // Size=4
9 {
10  unsigned long VadType: 3; // Size=4 Offset=0 BitOffset=0 BitCount=3
11  unsigned long Protection: 5; // Size=4 Offset=0 BitOffset=3 BitCount=5
12  unsigned long PreferredNode: 6; // Size=4 Offset=0 BitOffset=8 BitCount=6
13  unsigned long NoChange: 1; // Size=4 Offset=0 BitOffset=14 BitCount=1
14  unsigned long PrivateMemory: 1; // Size=4 Offset=0 BitOffset=15 BitCount=1
15  unsigned long Teb: 1; // Size=4 Offset=0 BitOffset=16 BitCount=1
16  unsigned long PrivateFixup: 1; // Size=4 Offset=0 BitOffset=17 BitCount=1
17  unsigned long Spare: 13; // Size=4 Offset=0 BitOffset=18 BitCount=13
18  unsigned long DeleteInProgress: 1; // Size=4 Offset=0 BitOffset=31 BitCount=1
19 };
20 
21 struct _MMVAD_FLAGS1 // Size=4
22 {
23  unsigned long CommitCharge: 31; // Size=4 Offset=0 BitOffset=0 BitCount=31
24  unsigned long MemCommit: 1; // Size=4 Offset=0 BitOffset=31 BitCount=1
25 };
26 
27 struct _MMVAD_FLAGS2 // Size=4
28 {
29  unsigned long FileOffset: 24; // Size=4 Offset=0 BitOffset=0 BitCount=24
30  unsigned long Large: 1; // Size=4 Offset=0 BitOffset=24 BitCount=1
31  unsigned long TrimBehind: 1; // Size=4 Offset=0 BitOffset=25 BitCount=1
32  unsigned long Inherit: 1; // Size=4 Offset=0 BitOffset=26 BitCount=1
33  unsigned long CopyOnWrite: 1; // Size=4 Offset=0 BitOffset=27 BitCount=1
34  unsigned long NoValidationNeeded: 1; // Size=4 Offset=0 BitOffset=28 BitCount=1
35  unsigned long Spare: 3; // Size=4 Offset=0 BitOffset=29 BitCount=3
36 };
37 
38 struct _MMVAD_FLAGS3 // Size=8
39 {
40  unsigned __int64 PreferredNode: 6; // Size=8 Offset=0 BitOffset=0 BitCount=6
41  unsigned __int64 Teb: 1; // Size=8 Offset=0 BitOffset=6 BitCount=1
42  unsigned __int64 Spare: 1; // Size=8 Offset=0 BitOffset=7 BitCount=1
43  unsigned __int64 SequentialAccess: 1; // Size=8 Offset=0 BitOffset=8 BitCount=1
44  unsigned __int64 LastSequentialTrim: 15; // Size=8 Offset=0 BitOffset=9 BitCount=15
45  unsigned __int64 Spare2: 8; // Size=8 Offset=0 BitOffset=24 BitCount=8
46  unsigned __int64 LargePageCreating: 1; // Size=8 Offset=0 BitOffset=32 BitCount=1
47  unsigned __int64 Spare3: 31; // Size=8 Offset=0 BitOffset=33 BitCount=31
48 };
49 
50 struct _MMSECURE_FLAGS // Size=4
51 {
52  unsigned long ReadOnly: 1; // Size=4 Offset=0 BitOffset=0 BitCount=1
53  unsigned long NoWrite: 1; // Size=4 Offset=0 BitOffset=1 BitCount=1
54  unsigned long Spare: 10; // Size=4 Offset=0 BitOffset=2 BitCount=10
55 };
56 
57 struct _MI_VAD_SEQUENTIAL_INFO // Size=8
58 {
59  unsigned __int64 Length: 12; // Size=8 Offset=0 BitOffset=0 BitCount=12
60  unsigned __int64 Vpn: 52; // Size=8 Offset=0 BitOffset=12 BitCount=52
61 };
62 
63 union ___unnamed1666 // Size=8
64 {
65  struct
66  {
67  __int64 Balance: 2; // Size=8 Offset=0 BitOffset=0 BitCount=2
68  };
69  struct _MM_AVL_NODE * Parent; // Size=8 Offset=0
70 };
71 
72 union ___unnamed1784 // Size=4
73 {
74  unsigned long LongFlags; // Size=4 Offset=0
75  struct _MMVAD_FLAGS VadFlags; // Size=4 Offset=0
76 };
77 union ___unnamed1785 // Size=4
78 {
79  unsigned long LongFlags1; // Size=4 Offset=0
80  struct _MMVAD_FLAGS1 VadFlags1; // Size=4 Offset=0
81 };
82 
83 union ___unnamed1883 // Size=4
84 {
85  unsigned long LongFlags2; // Size=4 Offset=0
86  struct _MMVAD_FLAGS2 VadFlags2; // Size=4 Offset=0
87 };
88 
89 union ___unnamed1885 // Size=8
90 {
91  struct _MI_VAD_SEQUENTIAL_INFO SequentialVa; // Size=8 Offset=0
92  struct _MMEXTEND_INFO * ExtendedInfo; // Size=8 Offset=0
93 };
94 
95 typedef struct _MM_AVL_NODE // Size=24
96 {
97  union ___unnamed1666 u1; // Size=8 Offset=0
98  struct _MM_AVL_NODE * LeftChild; // Size=8 Offset=8
99  struct _MM_AVL_NODE * RightChild; // Size=8 Offset=16
101 
102 typedef struct _MM_AVL_TABLE // Size=48
103 {
104  struct _MM_AVL_NODE BalancedRoot; // Size=24 Offset=0
105  struct
106  {
107  unsigned __int64 DepthOfTree: 5; // Size=8 Offset=24 BitOffset=0 BitCount=5
108  unsigned __int64 TableType: 3; // Size=8 Offset=24 BitOffset=5 BitCount=3
109  unsigned __int64 NumberGenericTableElements: 56; // Size=8 Offset=24 BitOffset=8 BitCount=56
110  };
111  void * NodeHint; // Size=8 Offset=32
112  void * NodeFreeHint; // Size=8 Offset=40
114 
115 typedef struct _MMVAD_SHORT // Size=64
116 {
117  struct _MM_AVL_NODE VadNode; // Size=24 Offset=0
118  unsigned long StartingVpn; // Size=4 Offset=24
119  unsigned long EndingVpn; // Size=4 Offset=28
120  void * PushLock; // Size=8 Offset=32
121  union ___unnamed1784 u; // Size=4 Offset=40
122  union ___unnamed1785 u1; // Size=4 Offset=44
123  struct _MI_VAD_EVENT_BLOCK * EventList; // Size=8 Offset=48
124  long ReferenceCount; // Size=4 Offset=56
126 
127 typedef struct _MMVAD // Size=128
128 {
129  struct _MMVAD_SHORT Core; // Size=64 Offset=0
130  union ___unnamed1883 u2; // Size=4 Offset=64
131  union
132  {
133  struct _SUBSECTION * Subsection; // Size=8 Offset=72
134  struct _MSUBSECTION * MappedSubsection; // Size=8 Offset=72
135  };
136  struct _MMPTE * FirstPrototypePte; // Size=8 Offset=80
137  struct _MMPTE * LastContiguousPte; // Size=8 Offset=88
138  struct _LIST_ENTRY ViewLinks; // Size=16 Offset=96
139  struct _EPROCESS * VadsProcess; // Size=8 Offset=112
140  union ___unnamed1885 u4; // Size=8 Offset=120
141 } MMVAD, *PMMVAD;
142 
143 typedef struct _POOL_HEADER // Size=16
144 {
145  union
146  {
147  struct
148  {
149  unsigned long PreviousSize: 8; // Size=4 Offset=0 BitOffset=0 BitCount=8
150  unsigned long PoolIndex: 8; // Size=4 Offset=0 BitOffset=8 BitCount=8
151  unsigned long BlockSize: 8; // Size=4 Offset=0 BitOffset=16 BitCount=8
152  unsigned long PoolType: 8; // Size=4 Offset=0 BitOffset=24 BitCount=8
153  };
154  unsigned long Ulong1; // Size=4 Offset=0
155  };
156  unsigned long PoolTag; // Size=4 Offset=4
157  union
158  {
159  struct _EPROCESS * ProcessBilled; // Size=8 Offset=8
160  struct
161  {
162  unsigned short AllocatorBackTraceIndex; // Size=2 Offset=8
163  unsigned short PoolTagHash; // Size=2 Offset=10
164  };
165  };
167 
168 #pragma warning(default : 4214 4201)
169 
170 #define GET_VAD_ROOT(Table) (Table->BalancedRoot.RightChild)
unsigned long EndingVpn
Definition: NativeStructs8.h:119
unsigned __int64 SequentialAccess
Definition: NativeStructs7.h:24
Definition: NativeStructs7.h:159
unsigned __int64 LastSequentialTrim
Definition: NativeStructs7.h:25
struct _LIST_ENTRY ViewLinks
Definition: NativeStructs7.h:148
unsigned __int64 Length
Definition: NativeStructs8.h:59
struct _EPROCESS * ProcessBilled
Definition: NativeStructs7.h:175
unsigned long PoolTag
Definition: NativeStructs7.h:172
struct _MMVAD_FLAGS2 VadFlags2
Definition: NativeStructs8.h:86
unsigned long NoValidationNeeded
Definition: NativeStructs8.h:34
struct _EPROCESS * VadsProcess
Definition: NativeStructs7.h:149
Definition: NativeStructs7.h:137
union ___unnamed712 u
Definition: NativeStructs7.h:132
unsigned __int64 Vpn
Definition: NativeStructs8.h:60
unsigned __int64 Protection
Definition: NativeStructs7.h:14
unsigned __int64 DepthOfTree
Definition: NativeStructs7.h:116
struct _MMADDRESS_NODE BalancedRoot
Definition: NativeStructs7.h:113
struct _MMPTE * LastContiguousPte
Definition: NativeStructs7.h:147
struct _MMVAD_SHORT MMVAD_SHORT
struct _MM_AVL_NODE VadNode
Definition: NativeStructs8.h:117
unsigned __int64 Spare2
Definition: NativeStructs7.h:26
unsigned long PreviousSize
Definition: NativeStructs7.h:165
unsigned int FileOffset
Definition: NativeStructs7.h:33
unsigned long PreferredNode
Definition: NativeStructs8.h:12
unsigned long LongFlags
Definition: NativeStructs8.h:74
unsigned long CommitCharge
Definition: NativeStructs8.h:23
unsigned long DeleteInProgress
Definition: NativeStructs8.h:18
Definition: NativeStructs7.h:125
unsigned __int64 VadType
Definition: NativeStructs7.h:12
unsigned __int64 PrivateMemory
Definition: NativeStructs7.h:16
void * PushLock
Definition: NativeStructs7.h:133
struct _MMVAD_SHORT Core
Definition: NativeStructs8.h:129
unsigned short PoolTagHash
Definition: NativeStructs7.h:179
struct _MMVAD_FLAGS1 VadFlags1
Definition: NativeStructs8.h:80
Definition: NativeStructs8.h:63
struct _MM_AVL_TABLE * PMM_AVL_TABLE
struct _MM_AVL_NODE MM_AVL_NODE
Definition: NativeStructs8.h:95
unsigned __int64 NoChange
Definition: NativeStructs7.h:11
struct _MM_AVL_NODE * PMMADDRESS_NODE
Definition: NativeStructs7.h:44
struct _MM_AVL_NODE * RightChild
Definition: NativeStructs8.h:99
unsigned __int64 Spare3
Definition: NativeStructs7.h:28
unsigned int Spare
Definition: NativeStructs7.h:37
struct _MM_AVL_NODE * Parent
Definition: NativeStructs8.h:69
Definition: NativeStructs8.h:89
Definition: NativeStructs8.h:77
union ___unnamed1666 u1
Definition: NativeStructs8.h:97
struct _MM_AVL_TABLE MM_AVL_TABLE
union ___unnamed710 u1
Definition: NativeStructs7.h:127
unsigned long NoWrite
Definition: NativeStructs7.h:47
unsigned long PrivateFixup
Definition: NativeStructs8.h:16
unsigned long Ulong1
Definition: NativeStructs7.h:170
void * NodeHint
Definition: NativeStructs7.h:120
unsigned long PoolIndex
Definition: NativeStructs7.h:166
struct _MSUBSECTION * MappedSubsection
Definition: NativeStructs7.h:144
struct _MMVAD MMVAD
unsigned long TrimBehind
Definition: NativeStructs8.h:31
union ___unnamed1885 u4
Definition: NativeStructs8.h:140
struct _MI_VAD_EVENT_BLOCK * EventList
Definition: NativeStructs8.h:123
union ___unnamed715 u2
Definition: NativeStructs7.h:140
struct _MMPTE * FirstPrototypePte
Definition: NativeStructs7.h:146
unsigned __int64 Spare
Definition: NativeStructs7.h:15
Definition: NativeStructs8.h:57
struct _POOL_HEADER * PPOOL_HEADER
unsigned __int64 LargePageCreating
Definition: NativeStructs7.h:27
Definition: NativeStructs81.h:14
unsigned long MemCommit
Definition: NativeStructs8.h:24
unsigned long LongFlags1
Definition: NativeStructs8.h:79
Definition: NativeStructs8.h:72
Definition: NativeStructs7.h:19
unsigned __int64 Spare
Definition: NativeStructs7.h:23
struct _MM_AVL_NODE * PMM_AVL_NODE
Definition: NativeStructs.h:281
unsigned long BlockSize
Definition: NativeStructs7.h:167
Definition: NativeStructs8.h:21
unsigned int CopyOnWrite
Definition: NativeStructs7.h:41
unsigned long PoolType
Definition: NativeStructs7.h:168
struct _MMVAD_SHORT * PMMVAD_SHORT
Definition: NativeStructs7.h:8
unsigned __int64 NumberGenericTableElements
Definition: NativeStructs7.h:118
unsigned short AllocatorBackTraceIndex
Definition: NativeStructs7.h:178
unsigned __int64 TableType
Definition: NativeStructs8.h:108
unsigned int Inherit
Definition: NativeStructs7.h:40
long ReferenceCount
Definition: NativeStructs8.h:124
unsigned long LongFlags2
Definition: NativeStructs8.h:85
unsigned __int64 PreferredNode
Definition: NativeStructs7.h:21
__int64 Balance
Definition: NativeStructs8.h:67
unsigned long Spare
Definition: NativeStructs7.h:48
void * NodeFreeHint
Definition: NativeStructs7.h:121
struct _POOL_HEADER POOL_HEADER
unsigned long Teb
Definition: NativeStructs8.h:15
struct _MMEXTEND_INFO * ExtendedInfo
Definition: NativeStructs8.h:92
Definition: NativeStructs8.h:83
struct _MMVAD_FLAGS VadFlags
Definition: NativeStructs8.h:75
Definition: NativeStructs7.h:111
unsigned __int64 Teb
Definition: NativeStructs7.h:22
unsigned long ReadOnly
Definition: NativeStructs7.h:46
unsigned long Large
Definition: NativeStructs8.h:30
struct _MM_AVL_NODE * LeftChild
Definition: NativeStructs8.h:98
Definition: NativeStructs7.h:31
struct _MMVAD * PMMVAD
struct _SUBSECTION * Subsection
Definition: NativeStructs7.h:143
unsigned long StartingVpn
Definition: NativeStructs8.h:118
struct _MI_VAD_SEQUENTIAL_INFO SequentialVa
Definition: NativeStructs8.h:91