Rizin
unix-like reverse engineering framework and cli tools
windows_heap.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2019 GustavoLCR <gugulcr@gmail.com>
2 // SPDX-License-Identifier: LGPL-3.0-only
3 
4 #ifndef WINDOWS_HEAP_H
5 #define WINDOWS_HEAP_H
6 
7 #include <windows.h>
8 #include <winternl.h>
9 
10 /*
11  Defines most of heap related structures on Windows (some still missing)
12  Tested only on Windows 10 1809 x64
13  TODO:
14  Clean/organize this: Order and Style
15  -Can this be useful in unix? does mdmp even have a heap? remote dbg session?
16  x86 vs x64 Struct Differences:
17  -Structs definetly unaligned, check pdb
18  -Do something like the the linux_heap that includes itself but with another bitness
19  -Define macros to prefix structs to W32 or W64
20 
21  Some structs are different based on the Windows version (XP, Vista, 7, Server, 8, 8.1, 10)
22  and updates (Service Packs, Windows 10 Seasonal Updates)
23  -Maybe use offsets instead of depending on structs
24  -Create structs for each windows version (ie post-fix XP_SP2, 7, 10_1703)?
25  -What about the parsing functions? Alter its behaviour depending on version or create
26  one function for each version
27 */
28 #define EXTRA_FLAG (1ULL << (sizeof (size_t) * 8 - 1))
29 
30 #define SHIFT 16
31 #define LFH_BLOCK (1 << (SHIFT))
32 #define LARGE_BLOCK (1 << (SHIFT + 1))
33 #define NT_BLOCK (1 << (SHIFT + 2))
34 #define SEGMENT_HEAP_BLOCK (1 << (SHIFT + 3))
35 #define VS_BLOCK (1 << (SHIFT + 4))
36 #define BACKEND_BLOCK (1 << (SHIFT + 5))
37 
40 typedef struct _LFH_HEAP *PLFH_HEAP;
41 typedef struct _HEAP *PHEAP;
42 
44 typedef struct _RTL_BALANCED_NODE {
45  union {
47  struct {
50  };
51  };
52  union {
53  BYTE Red : 1;
55  WPARAM ParentValue;
56  };
58 
59 typedef struct _RTL_RB_TREE {
61  union {
62  BOOL Encoded : 1;
64  };
66 
67 typedef struct _HEAP_COUNTERS {
72  ULONG32 TotalSegments;
73  ULONG32 TotalUCRs;
74  ULONG32 CommittOps;
75  ULONG32 DeCommitOps;
76  ULONG32 LockAcquires;
77  ULONG32 LockCollisions;
78  ULONG32 CommitRate;
79  ULONG32 DecommittRate;
80  ULONG32 CommitFailures;
85  ULONG32 AllocAndFreeOps;
92 
93 typedef struct _HEAP_BUCKET_COUNTERS {
94  union {
95  struct {
98  };
99  UINT64 Aggregate64;
100  };
102 
103 typedef struct _INTERLOCK_SEQ { // Is this right? NO!
104  union {
105  WORD Depth;
106  union {
107  union {
108  WORD Hint : 15;
109  WORD Lock : 1;
110  };
111  WORD Hint16;
112  };
113  INT32 Exchg;
114  };
116 
117 typedef struct _HEAP_UNPACKED_ENTRY {
118 #if defined(_M_X64)
119  PVOID PreviousBlockPrivateData;
120 #endif
121  union {
122  struct {
123  UINT16 Size;
124  UINT8 Flags;
126  };
127 #if defined(_M_X64)
128  struct {
129  ULONG32 SubSegmentCode;
130  UINT16 PreviousSize;
131  union {
132  UINT8 SegmentOffset;
133  UINT8 LFHFlags;
134  };
135  UINT8 UnusedBytes;
136  };
137  UINT64 CompactHeader;
138 #else
139  ULONG32 SubSegmentCode;
140 #endif
141  };
142 #if !defined(_M_X64)
143  UINT16 PreviousSize;
144  union {
146  UINT8 LFHFlags;
147  };
148  UINT8 UnusedBytes;
149 #endif
151 
152 typedef struct _HEAP_EXTENDED_ENTRY {
153 #if defined(_M_X64)
154  PVOID Reserved;
155 #endif
156  union {
157  struct {
159  UINT16 ContextValue;
160  };
162  };
164  UINT8 EntryOffset;
167 
168 typedef struct _HEAP_ENTRY {
169  union {
171  struct {
172 #if defined(_M_X64)
173  PVOID PreviousBlockPrivateData;
174  union {
175  struct {
176  UINT16 Size;
177  UINT8 Flags;
178  UINT8 SmallTagIndex;
179  };
180  struct {
181  ULONG32 SubSegmentCode;
182  UINT16 PreviousSize;
183  union {
184  UINT8 SegmentOffset;
185  UINT8 LFHFlags;
186  };
187  UINT8 UnusedBytes;
188  };
189  UINT64 CompactHeader;
190  };
191 #else
192  UINT16 Size;
193  UINT8 Flags;
195 #endif
196  };
197 #if !defined(_M_X64)
198  struct {
199  ULONG32 SubSegmentCode;
200  UINT16 PreviousSize;
201  union {
203  UINT8 LFHFlags;
204  };
205  UINT8 UnusedBytes;
206  };
207 #endif
209  struct {
210 #if defined(_M_X64)
211  PVOID Reserved;
212  union {
213  struct {
214  UINT16 FunctionIndex;
215  UINT16 ContextValue;
216  };
217  ULONG32 InterceptorValue;
218  };
219  UINT16 UnusedBytesLength;
220  UINT8 EntryOffset;
222 #else
224  UINT16 ContextValue;
225 #endif
226  };
227  struct {
228 #if defined(_M_X64)
229  PVOID ReservedForAlignment;
230  union {
231  struct {
232  ULONG32 Code1;
233  union {
234  struct {
235  UINT16 Code2;
236  UINT8 Code3;
237  UINT8 Code4;
238  };
239  ULONG32 Code234;
240  };
241  };
242  UINT64 AgregateCode;
243  };
244 #else
247  UINT8 EntryOffset;
249 #endif
250  };
251 #if !defined(_M_X64)
252  struct {
253  ULONG32 Code1;
254  union {
255  struct {
256  UINT16 Code2;
257  UINT8 Code3;
258  UINT8 Code4;
259  };
260  ULONG32 Code234;
261  };
262  };
263  UINT64 AgregateCode;
264 #endif
265  };
267 
268 typedef struct _HEAP_LOCK {
269  union {
270  RTL_CRITICAL_SECTION CriticalSection;
271  PVOID /*(ERESOURCE)*/ Resource;
272  } Lock;
274 
275 typedef struct _HEAP_TAG_ENTRY {
276  ULONG32 Allocs;
277  ULONG32 Frees;
278  WPARAM Size;
279  UINT16 TagIndex;
281  WCHAR TagName[24];
282 #if defined(_M_X64)
283  UINT8 _PADDING0_[4];
284 #endif
286 
287 typedef struct _HEAP_PSEUDO_TAG_ENTRY {
288  ULONG32 Allocs;
289  ULONG32 Frees;
290  WPARAM Size;
292 
293 typedef struct _HEAP_TUNING_PARAMETERS {
295 #if defined(_M_X64)
296  UINT8 _PADDING0_[4];
297 #endif
300 
307 
308 typedef struct _RTL_HP_ENV_HANDLE {
309  PVOID h[2];
311 
312 typedef struct _RTL_HP_SEG_ALLOC_POLICY {
317 
318 typedef enum _RTLP_HP_LOCK_TYPE {
323 
331 
332 typedef struct _RTL_HP_VS_CONFIG {
333  struct {
336  } Flags;
338 
339 typedef struct _HEAP_VS_SUBSEGMENT {
340  LIST_ENTRY ListEntry;
341  WPARAM CommitBitmap;
342  WPARAM CommitLock;
343  UINT16 Size;
344  UINT16 Signature : 15;
345  bool FullCommit : 1;
346  WPARAM Spare;
348 
349 typedef struct _HEAP_VS_CONTEXT {
351  WPARAM /*RTLP_HP_LOCK_TYPE*/ LockType;
353  LIST_ENTRY SubsegmentList;
356  WPARAM /*HEAP_VS_DELAY_FREE_CONTEXT*/ DelayFreeContext[8]; // 0x40 Bytes
360  UINT Flags;
361  WPARAM Padding;
363 
365  union {
366  WPARAM HeaderBits;
367  USHORT KeyUShort;
369  struct {
370  USHORT MemoryCost;
371  USHORT UnsafeSize;
373  UINT8 Allocated;
374  };
375  };
377 
378 typedef struct _HEAP_VS_CHUNK_HEADER {
380  union {
384  ULONG Spare : 22;
386  };
388 
389 enum {
394  PAGE_RANGE_FLAGS_VS_SUBSEGMENT = 0x20 // LIES
395 };
396 
398  union {
400  struct {
403  };
404  union {
406  UINT16 Spare0 : 15;
407  };
408  };
409  UCHAR RangeFlags;
411  USHORT Spare;
412  union {
413  //_HEAP_DESCRIPTOR_KEY Key;
414  UCHAR Align[3];
415  };
416  union {
417  UCHAR UnitOffset;
418  UCHAR UnitSize;
419  };
421 
422 typedef struct _HEAP_PAGE_SEGMENT {
423  union {
424  struct {
425  LIST_ENTRY ListEntry;
426  WPARAM Signature;
429  };
431  };
433 
434 typedef struct _RTL_HP_LFH_CONFIG {
435  USHORT MaxBlockSize;
438 
443 
445  union {
447  UINT64 Stats;
448  };
450 
452  struct {
455  };
457  union {
460  };
465  LIST_ENTRY FullSubsegmentList;
467 
468 typedef struct _HEAP_LFH_FAST_REF {
469  union {
471  WPARAM Value;
472  UINT16 RefCount : 12;
473  };
475 
476 typedef struct _HEAP_LFH_AFFINITY_SLOT {
480 
481 typedef struct _HEAP_LFH_BUCKET {
486  UINT8 Shift;
492 
493 typedef struct _HEAP_LFH_CONTEXT {
497  UINT8 MaxAffinity;
498  UINT8 LockType;
503  WPARAM Padding[6];
506 
508  union {
509  UINT32 EncodedData;
510  struct {
511  UINT16 BlockSize;
513  };
514  };
516 
517 typedef struct _HEAP_LFH_SUBSEGMENT {
518  LIST_ENTRY ListEntry;
519  union {
521  WPARAM /*HEAP_LFH_SUBSEGMENT_DELAY_FREE*/ DelayFree;
522  };
523  WPARAM CommitLock;
524  union {
525  struct {
526  UINT16 FreeCount;
527  UINT16 BlockCount;
528  };
529  union {
532  };
533  };
534  UINT16 FreeHint;
541  WPARAM BlockBitmap[1];
543 
544 typedef struct _HEAP_LARGE_ALLOC_DATA {
546  union {
548  UINT16 UnusedBytes;
549  };
550  union {
551  UINT64 BitMask;
552  union {
553  bool ExtraPresent : 1;
554  bool GuardPageCount : 1;
556  UINT8 Spare : 4;
557  UINT64 AllocatedPages : 52;
558  };
559  };
561 
566 
575 
576 typedef struct _HEAP_SEG_CONTEXT {
577  UINT64 SegmentMask;
583  UINT16 Flags;
591  WPARAM SegmentLock;
592  LIST_ENTRY SegmentListHead;
593  WPARAM SegmentCount;
596  SINGLE_LIST_ENTRY FreeSegmentList[2];
597  WPARAM Padding[7];
599 
600 typedef struct _SEGMENT_HEAP {
607  union {
609  struct {
614  };
615  };
617  RTL_RB_TREE LargeAllocMetadata; // Tree of HEAP_LARGE_ALLOC_DATA
620  RTL_RUN_ONCE StackTraceInitVar;
621  WPARAM Padding[2];
633 
634 typedef struct _HEAP_SEGMENT {
637  ULONG32 SegmentFlags;
638  LIST_ENTRY SegmentListEntry;
641  ULONG32 NumberOfPages;
642 #if defined(_M_X64)
643  UINT8 _PADDING0_[4];
644 #endif
650  UINT16 Reserved;
651 #if defined(_M_X64)
652  UINT8 _PADDING1_[4];
653 #endif
654  LIST_ENTRY UCRSegmentList;
656 
657 typedef struct _HEAP {
658  union {
660  struct {
663  ULONG32 SegmentFlags;
664  LIST_ENTRY SegmentListEntry;
667  ULONG32 NumberOfPages;
673  UINT16 Reserved;
674  LIST_ENTRY UCRSegmentList;
675  };
676  };
677  ULONG32 Flags;
678  ULONG32 ForceFlags;
680  ULONG32 EncodeFlagMask;
682  ULONG32 Interceptor;
684  ULONG32 Signature;
685 #if defined(_M_X64)
686  UINT8 _PADDING0_[4];
687 #endif
696 #if defined(_M_X64)
697  UINT8 _PADDING1_[4];
698 #endif
702 #if defined(_M_X64)
703  UINT8 _PADDING2_[4];
704 #endif
706  LIST_ENTRY UCRzList;
707  WPARAM AlignRound;
708  WPARAM AlignMask;
710  LIST_ENTRY SegmentList;
712  UINT8 _PADDING03_[2];
717  LIST_ENTRY FreeLists;
719  LONG32 (WINAPI * CommitRoutine) (PVOID, PVOID *, WPARAM *);
720  RTL_RUN_ONCE StackTraceInitVar;
726 #if defined(_M_X64)
727  UINT8 _PADDING4_[4];
728 #endif
731 #if defined(_M_X64)
732  UINT8 FrontEndHeapStatusBitmap[129];
733 #else
735 #endif
736 #if defined(_M_X64)
737  UINT8 _PADDING5_[5];
738 #else
739  UINT8 _PADDING1_[1];
740 #endif
744 
745 typedef struct _HEAP_ENTRY_EXTRA {
746  union {
747  struct {
749  UINT16 TagIndex;
750 #if defined(_M_X64)
751  UINT8 _PADDING0_[4];
752 #endif
753  WPARAM Settable;
754  };
755 #if defined(_M_X64)
756  struct {
757  UINT64 ZeroInit;
758  UINT64 ZeroInit1;
759  };
760 #else
761  UINT64 ZeroInit;
762 #endif
763  };
765 
767  LIST_ENTRY Entry;
769  WPARAM CommitSize;
770  WPARAM ReserveSize;
773 
774 typedef struct _LFH_BLOCK_ZONE {
775  LIST_ENTRY ListEntry;
777  /* // Win 7
778  PVOID FreePointer;
779  PVOID Limit;
780  */
782 
783 typedef struct _HEAP_USERDATA_OFFSETS {
784  union {
786  struct {
788  UINT16 BlockStride;
789  };
790  };
792 
793 typedef struct _RTL_BITMAP_EX {
794  WPARAM SizeOfBitMap;
795  WPARAM *Buffer;
797 
798 typedef struct _HEAP_USERDATA_HEADER {
799  union {
800  SINGLE_LIST_ENTRY SFreeListEntry;
802  };
804  union {
806  struct {
807  UCHAR SizeIndex;
809  UINT16 PaddingBytes;
810  };
811  };
815  WPARAM BitmapData;
817 
818 
819 typedef struct _HEAP_SUBSEGMENT *PHEAP_SUBSEGMENT;
820 typedef struct _HEAP_LOCAL_SEGMENT_INFO {
824  SLIST_HEADER SListHeader;
827  UINT16 BucketIndex;
828  UINT16 LastUsed;
831 
832 typedef struct _HEAP_SUBSEGMENT {
835  SLIST_HEADER DelayFreeList;
837  union {
838  struct {
839  WORD BlockSize;
840  WORD Flags;
842  UINT8 SizeIndex;
844  };
846  };
848  SINGLE_LIST_ENTRY SFreeListEntry;
850 
851 typedef struct _HEAP_LFH_MEM_POLICIES {
852  union {
854  union {
855  UINT8 DisableAffinity : 1;
857  ULONG Spare : 30;
858  };
859  };
861 
862 typedef struct _HEAP_LOCAL_DATA {
863  SLIST_HEADER DeletedSubSegments;
867  //HEAP_LOCAL_SEGMENT_INFO SegmentInfo[128]; // Only on Win7
869 
870 typedef struct _HEAP_BUCKET {
872  UINT8 SizeIndex;
873  union {
875  union {
878  };
879  };
881 
882 typedef struct _HEAP_BUCKET_RUN_INFO {
883  union {
884  struct {
887  };
888  UINT64 Aggregate64;
889  };
891 
892 typedef struct _USER_MEMORY_CACHE_ENTRY {
893  SLIST_HEADER UserBlocks;
897  USHORT Allocations;
898  USHORT Frees;
899  USHORT CacheHits;
901 
902 typedef struct _LFH_HEAP {
904  LIST_ENTRY SubSegmentZones;
913  WPARAM SizeInCache;
923 
924 typedef struct _HeapBlockBasicInfo {
925  WPARAM size;
926  WPARAM flags;
927  WPARAM extra;
928  WPARAM address;
930 
931 typedef struct _HeapBlockExtraInfo { // think of extra stuff to put here
932  WPARAM heap;
933  WPARAM segment;
934  WPARAM unusedBytes;
935  USHORT granularity;
937 
938 typedef struct _HeapBlock {
939  ULONG_PTR dwAddress;
940  SIZE_T dwSize;
942  SIZE_T index;
945 
946 typedef struct _DEBUG_BUFFER {
956  SIZE_T SizeOfInfo;
958  SIZE_T SectionSize;
971 
972 
973 typedef struct _DEBUG_HEAP_INFORMATION {
976  USHORT Granularity;
978  SIZE_T Allocated;
979  SIZE_T Committed;
988 
989 typedef struct _HeapInformation {
993 
994 PDEBUG_BUFFER (NTAPI *RtlCreateQueryDebugBuffer)(
995  IN DWORD Size,
996  IN BOOLEAN EventPair
997 );
998 
999 NTSTATUS (NTAPI *RtlQueryProcessDebugInformation)(
1000  IN DWORD ProcessId,
1003 );
1004 
1005 NTSTATUS (NTAPI *RtlDestroyQueryDebugBuffer)(
1007 );
1008 
1009 __kernel_entry NTSTATUS (NTAPI *w32_NtQueryInformationProcess)(
1010  IN HANDLE ProcessHandle,
1011  IN PROCESSINFOCLASS ProcessInformationClass,
1015 );
1016 #endif
#define LONG
unsigned char BYTE
Definition: lz4.c:286
#define OUT
Definition: regex2.h:157
PVOID Reserved[4]
Definition: windows_heap.h:969
HANDLE CriticalSectionHandle
Definition: windows_heap.h:967
SIZE_T SizeOfInfo
Definition: windows_heap.h:956
PVOID HeapInformation
Definition: windows_heap.h:961
PVOID BackTraceInformation
Definition: windows_heap.h:960
HANDLE EventPairHandle
Definition: windows_heap.h:951
HANDLE SectionHandle
Definition: windows_heap.h:947
PVOID ModuleInformation
Definition: windows_heap.h:959
WPARAM SectionBaseDelta
Definition: windows_heap.h:950
HANDLE RemoteEventPairHandle
Definition: windows_heap.h:952
HANDLE CriticalSectionOwnerThread
Definition: windows_heap.h:968
PVOID LockInformation
Definition: windows_heap.h:962
SIZE_T SectionSize
Definition: windows_heap.h:958
PVOID RemoteSectionBase
Definition: windows_heap.h:949
HANDLE RemoteProcessId
Definition: windows_heap.h:953
PVOID VerifierOptions
Definition: windows_heap.h:965
SIZE_T AllocatedSize
Definition: windows_heap.h:957
HANDLE RemoteThreadHandle
Definition: windows_heap.h:954
PVOID SpecificHeap
Definition: windows_heap.h:963
ULONG InfoClassMask
Definition: windows_heap.h:955
HANDLE RemoteProcessHandle
Definition: windows_heap.h:964
ULONG32 TotalSegments
Definition: windows_heap.h:72
ULONG32 AllocationIndicesActive
Definition: windows_heap.h:86
WPARAM TotalMemoryCommitted
Definition: windows_heap.h:69
ULONG32 CommitRate
Definition: windows_heap.h:78
ULONG32 LockAcquires
Definition: windows_heap.h:76
ULONG32 PollIntervalCounter
Definition: windows_heap.h:82
ULONG32 InBlockCommitFailures
Definition: windows_heap.h:81
ULONG32 DecommitsSinceLastCheck
Definition: windows_heap.h:83
ULONG32 DeCommitOps
Definition: windows_heap.h:75
ULONG32 TotalUCRs
Definition: windows_heap.h:73
ULONG32 LockCollisions
Definition: windows_heap.h:77
ULONG32 DecommittRate
Definition: windows_heap.h:79
WPARAM TotalSizeInVirtualBlocks
Definition: windows_heap.h:71
ULONG32 AllocAndFreeOps
Definition: windows_heap.h:85
WPARAM TotalMemoryLargeUCR
Definition: windows_heap.h:70
ULONG32 InBlockDeccommits
Definition: windows_heap.h:87
WPARAM InBlockDeccomitSize
Definition: windows_heap.h:88
WPARAM TotalMemoryReserved
Definition: windows_heap.h:68
WPARAM HighWatermarkSize
Definition: windows_heap.h:89
ULONG32 CommitFailures
Definition: windows_heap.h:80
WPARAM LastPolledSize
Definition: windows_heap.h:90
ULONG32 CommittOps
Definition: windows_heap.h:74
ULONG32 HeapPollInterval
Definition: windows_heap.h:84
Definition: windows_heap.h:745
UINT16 AllocatorBackTraceIndex
Definition: windows_heap.h:748
UINT16 TagIndex
Definition: windows_heap.h:749
WPARAM Settable
Definition: windows_heap.h:753
UINT64 ZeroInit
Definition: windows_heap.h:761
Definition: windows_heap.h:168
UINT8 ExtendedBlockSignature
Definition: windows_heap.h:248
UINT16 Code2
Definition: windows_heap.h:256
HEAP_UNPACKED_ENTRY UnpackedEntry
Definition: windows_heap.h:170
UINT8 SmallTagIndex
Definition: windows_heap.h:194
UINT16 PreviousSize
Definition: windows_heap.h:200
UINT8 Flags
Definition: windows_heap.h:193
UINT8 Code4
Definition: windows_heap.h:258
UINT8 UnusedBytes
Definition: windows_heap.h:205
UINT16 ContextValue
Definition: windows_heap.h:224
UINT8 EntryOffset
Definition: windows_heap.h:247
UINT16 FunctionIndex
Definition: windows_heap.h:223
ULONG32 Code234
Definition: windows_heap.h:260
UINT8 LFHFlags
Definition: windows_heap.h:203
ULONG32 SubSegmentCode
Definition: windows_heap.h:199
UINT16 UnusedBytesLength
Definition: windows_heap.h:246
ULONG32 InterceptorValue
Definition: windows_heap.h:245
UINT8 Code3
Definition: windows_heap.h:257
UINT64 AgregateCode
Definition: windows_heap.h:263
UINT16 Size
Definition: windows_heap.h:192
ULONG32 Code1
Definition: windows_heap.h:253
HEAP_EXTENDED_ENTRY ExtendedEntry
Definition: windows_heap.h:208
UINT8 SegmentOffset
Definition: windows_heap.h:202
Definition: windows_heap.h:152
UINT8 ExtendedBlockSignature
Definition: windows_heap.h:165
UINT16 FunctionIndex
Definition: windows_heap.h:158
UINT16 UnusedBytesLength
Definition: windows_heap.h:163
UINT8 EntryOffset
Definition: windows_heap.h:164
UINT16 ContextValue
Definition: windows_heap.h:159
ULONG32 InterceptorValue
Definition: windows_heap.h:161
RTL_BALANCED_NODE TreeNode
Definition: windows_heap.h:545
HEAP_LFH_FAST_REF ActiveSubsegment
Definition: windows_heap.h:478
HEAP_LFH_SUBSEGMENT_OWNER State
Definition: windows_heap.h:477
PHEAP_LFH_AFFINITY_SLOT * AffinitySlots
Definition: windows_heap.h:490
PUINT8 ProcAffinityMapping
Definition: windows_heap.h:489
WPARAM AffinityMappingLock
Definition: windows_heap.h:488
HEAP_LFH_SUBSEGMENT_OWNER State
Definition: windows_heap.h:482
WPARAM TotalBlockCount
Definition: windows_heap.h:483
WPARAM TotalSubsegmentCount
Definition: windows_heap.h:484
RTL_HP_LFH_CONFIG Config
Definition: windows_heap.h:500
HEAP_LFH_SUBSEGMENT_STATS BucketStats
Definition: windows_heap.h:501
HEAP_SUBALLOCATOR_CALLBACKS Callbacks
Definition: windows_heap.h:495
WPARAM SubsegmentCreationLock
Definition: windows_heap.h:502
PHEAP_LFH_BUCKET Buckets[129]
Definition: windows_heap.h:504
LIST_ENTRY AvailableSubsegmentList
Definition: windows_heap.h:464
HEAP_LFH_SUBSEGMENT_STAT Buckets[4]
Definition: windows_heap.h:446
PHEAP_LFH_SUBSEGMENT_OWNER Owner
Definition: windows_heap.h:520
HEAP_LFH_SUBSEGMENT_ENCODED_OFFSETS BlockOffsets
Definition: windows_heap.h:537
PLFH_BLOCK_ZONE CrtZone
Definition: windows_heap.h:864
PLFH_HEAP LowFragHeap
Definition: windows_heap.h:865
SLIST_HEADER DeletedSubSegments
Definition: windows_heap.h:863
PHEAP_SUBSEGMENT ActiveSubsegment
Definition: windows_heap.h:822
HEAP_BUCKET_COUNTERS Counters
Definition: windows_heap.h:825
PHEAP_SUBSEGMENT CachedItems[16]
Definition: windows_heap.h:823
PHEAP_LOCAL_DATA LocalData
Definition: windows_heap.h:821
PVOID Resource
Definition: windows_heap.h:271
union _HEAP_LOCK::@493 Lock
RTL_CRITICAL_SECTION CriticalSection
Definition: windows_heap.h:270
RTL_BALANCED_NODE TreeNode
Definition: windows_heap.h:399
HEAP_PAGE_RANGE_DESCRIPTOR DescArray[256]
Definition: windows_heap.h:430
LIST_ENTRY ListEntry
Definition: windows_heap.h:425
Definition: windows_heap.h:287
ULONG32 Frees
Definition: windows_heap.h:289
ULONG32 Allocs
Definition: windows_heap.h:288
WPARAM Size
Definition: windows_heap.h:290
HEAP_OPPORTUNISTIC_LARGE_PAGE_STATS LargePageStats[2]
Definition: windows_heap.h:572
RTL_HP_SEG_ALLOC_POLICY LargePageUtilizationPolicy
Definition: windows_heap.h:573
LIST_ENTRY SegmentListEntry
Definition: windows_heap.h:638
ULONG32 NumberOfUnCommittedPages
Definition: windows_heap.h:647
ULONG32 NumberOfPages
Definition: windows_heap.h:641
LIST_ENTRY UCRSegmentList
Definition: windows_heap.h:654
PHEAP_ENTRY LastValidEntry
Definition: windows_heap.h:646
ULONG32 NumberOfUnCommittedRanges
Definition: windows_heap.h:648
HEAP_ENTRY Entry
Definition: windows_heap.h:635
PHEAP_ENTRY FirstEntry
Definition: windows_heap.h:645
UINT16 SegmentAllocatorBackTraceIndex
Definition: windows_heap.h:649
ULONG32 SegmentSignature
Definition: windows_heap.h:636
ULONG32 SegmentFlags
Definition: windows_heap.h:637
SINGLE_LIST_ENTRY FreeSegmentList[2]
Definition: windows_heap.h:596
WPARAM FreeSegmentListLock
Definition: windows_heap.h:595
LIST_ENTRY SegmentListHead
Definition: windows_heap.h:592
RTL_RB_TREE FreePageRanges
Definition: windows_heap.h:594
RTL_HP_ENV_HANDLE EnvHandle
Definition: windows_heap.h:589
PHEAP_USERDATA_HEADER UserBlocks
Definition: windows_heap.h:834
SLIST_HEADER DelayFreeList
Definition: windows_heap.h:835
PHEAP_LOCAL_SEGMENT_INFO LocalInfo
Definition: windows_heap.h:833
INTERLOCK_SEQ AggregateExchg
Definition: windows_heap.h:836
ULONG Alignment[2]
Definition: windows_heap.h:845
SINGLE_LIST_ENTRY SFreeListEntry
Definition: windows_heap.h:848
Definition: windows_heap.h:275
ULONG32 Allocs
Definition: windows_heap.h:276
WPARAM Size
Definition: windows_heap.h:278
UINT16 CreatorBackTraceIndex
Definition: windows_heap.h:280
UINT16 TagIndex
Definition: windows_heap.h:279
ULONG32 Frees
Definition: windows_heap.h:277
WCHAR TagName[24]
Definition: windows_heap.h:281
Definition: windows_heap.h:117
ULONG32 SubSegmentCode
Definition: windows_heap.h:139
UINT8 UnusedBytes
Definition: windows_heap.h:148
UINT8 SegmentOffset
Definition: windows_heap.h:145
UINT8 LFHFlags
Definition: windows_heap.h:146
UINT16 PreviousSize
Definition: windows_heap.h:143
UINT8 SmallTagIndex
Definition: windows_heap.h:125
UINT16 Size
Definition: windows_heap.h:123
UINT8 Flags
Definition: windows_heap.h:124
PHEAP_SUBSEGMENT SubSegment
Definition: windows_heap.h:801
RTL_BITMAP_EX BusyBitmap
Definition: windows_heap.h:814
SINGLE_LIST_ENTRY SFreeListEntry
Definition: windows_heap.h:800
HEAP_USERDATA_OFFSETS EncodedOffsets
Definition: windows_heap.h:813
Definition: windows_heap.h:766
LIST_ENTRY Entry
Definition: windows_heap.h:767
HEAP_ENTRY BusyBlock
Definition: windows_heap.h:771
WPARAM ReserveSize
Definition: windows_heap.h:770
WPARAM CommitSize
Definition: windows_heap.h:769
HEAP_ENTRY_EXTRA ExtraStuff
Definition: windows_heap.h:768
HEAP_VS_CHUNK_HEADER_SIZE Sizes
Definition: windows_heap.h:379
HEAP_SUBALLOCATOR_CALLBACKS Callbacks
Definition: windows_heap.h:358
LIST_ENTRY SubsegmentList
Definition: windows_heap.h:353
RTL_RB_TREE FreeChunkTree
Definition: windows_heap.h:352
WPARAM FreeCommittedUnits
Definition: windows_heap.h:355
RTL_HP_VS_CONFIG Config
Definition: windows_heap.h:359
RTL_SRWLOCK Lock
Definition: windows_heap.h:350
WPARAM TotalCommittedUnits
Definition: windows_heap.h:354
WPARAM DelayFreeContext[8]
Definition: windows_heap.h:356
LIST_ENTRY ListEntry
Definition: windows_heap.h:340
UINT8 _PADDING03_[2]
Definition: windows_heap.h:712
WPARAM SegmentCommit
Definition: windows_heap.h:689
PVOID WPARAM *RTL_RUN_ONCE StackTraceInitVar
Definition: windows_heap.h:719
UINT16 ProcessHeapsListIndex
Definition: windows_heap.h:694
ULONG32 NumberOfPages
Definition: windows_heap.h:667
LIST_ENTRY UCRSegmentList
Definition: windows_heap.h:674
UINT16 NextAvailableTagIndex
Definition: windows_heap.h:700
HEAP_COUNTERS Counters
Definition: windows_heap.h:741
PHEAP_ENTRY FirstEntry
Definition: windows_heap.h:668
WPARAM MaximumAllocationSize
Definition: windows_heap.h:693
WPARAM SegmentReserve
Definition: windows_heap.h:688
ULONG32 NumberOfUnCommittedPages
Definition: windows_heap.h:670
LIST_ENTRY UCRzList
Definition: windows_heap.h:706
HEAP_ENTRY Entry
Definition: windows_heap.h:661
WPARAM DeCommitTotalFreeThreshold
Definition: windows_heap.h:691
UINT16 AllocatorBackTraceIndex
Definition: windows_heap.h:711
UINT16 MaximumTagIndex
Definition: windows_heap.h:701
ULONG32 ForceFlags
Definition: windows_heap.h:678
ULONG32 EncodeFlagMask
Definition: windows_heap.h:680
WPARAM DeCommitFreeBlockThreshold
Definition: windows_heap.h:690
ULONG32 SegmentSignature
Definition: windows_heap.h:662
WPARAM AlignMask
Definition: windows_heap.h:708
UINT16 Reserved
Definition: windows_heap.h:673
PVOID UCRIndex
Definition: windows_heap.h:715
ULONG32 SegmentFlags
Definition: windows_heap.h:663
UINT16 SegmentAllocatorBackTraceIndex
Definition: windows_heap.h:672
UINT8 FrontEndHeapStatusBitmap[257]
Definition: windows_heap.h:734
ULONG32 NonDedicatedListLength
Definition: windows_heap.h:713
ULONG32 Interceptor
Definition: windows_heap.h:682
UINT16 FrontEndHeapMaximumIndex
Definition: windows_heap.h:730
LONG32(WINAPI *CommitRoutine)(PVOID
LIST_ENTRY VirtualAllocdBlocks
Definition: windows_heap.h:709
WPARAM TotalFreeSize
Definition: windows_heap.h:692
PHEAP_PSEUDO_TAG_ENTRY PseudoTagEntries
Definition: windows_heap.h:716
LIST_ENTRY FreeLists
Definition: windows_heap.h:717
PVOID BaseAddress
Definition: windows_heap.h:666
LIST_ENTRY SegmentList
Definition: windows_heap.h:710
ULONG32 CompatibilityFlags
Definition: windows_heap.h:679
HEAP_SEGMENT Segment
Definition: windows_heap.h:659
PHEAP_TAG_ENTRY TagEntries
Definition: windows_heap.h:705
UINT16 FrontHeapLockCount
Definition: windows_heap.h:723
RTL_HEAP_MEMORY_LIMIT_DATA CommitLimitData
Definition: windows_heap.h:721
UINT8 _PADDING1_[1]
Definition: windows_heap.h:739
UINT16 HeaderValidateLength
Definition: windows_heap.h:695
ULONG32 NumberOfUnCommittedRanges
Definition: windows_heap.h:671
UINT8 FrontEndHeapType
Definition: windows_heap.h:724
UINT8 RequestedFrontEndHeapType
Definition: windows_heap.h:725
HEAP_TUNING_PARAMETERS TuningParameters
Definition: windows_heap.h:742
PVOID BlocksIndex
Definition: windows_heap.h:714
ULONG32 Flags
Definition: windows_heap.h:677
WPARAM AlignRound
Definition: windows_heap.h:707
PHEAP_LOCK LockVariable
Definition: windows_heap.h:718
ULONG32 VirtualMemoryThreshold
Definition: windows_heap.h:683
PVOID FrontEndHeap
Definition: windows_heap.h:722
PHEAP Heap
Definition: windows_heap.h:665
ULONG32 Signature
Definition: windows_heap.h:684
PVOID HeaderValidateCopy
Definition: windows_heap.h:699
HEAP_ENTRY Encoding
Definition: windows_heap.h:681
PHEAP_ENTRY LastValidEntry
Definition: windows_heap.h:669
LIST_ENTRY SegmentListEntry
Definition: windows_heap.h:664
PUINT16 FrontEndHeapUsageData
Definition: windows_heap.h:729
ULONG_PTR dwAddress
Definition: windows_heap.h:939
SIZE_T index
Definition: windows_heap.h:942
DWORD dwFlags
Definition: windows_heap.h:941
SIZE_T dwSize
Definition: windows_heap.h:940
PHeapBlockExtraInfo extraInfo
Definition: windows_heap.h:943
DEBUG_HEAP_INFORMATION heaps[]
Definition: windows_heap.h:991
LIST_ENTRY ListEntry
Definition: windows_heap.h:775
WPARAM SizeInCache
Definition: windows_heap.h:913
ULONG SegmentCreate
Definition: windows_heap.h:909
PVOID ReservedAddressLimit
Definition: windows_heap.h:908
ULONG SegmentDelete
Definition: windows_heap.h:910
PHEAP_LOCAL_SEGMENT_INFO SegmentInfoArrays[129]
Definition: windows_heap.h:918
PHEAP_LOCAL_SEGMENT_INFO AffinitizedInfoArrays[129]
Definition: windows_heap.h:919
HEAP_LFH_MEM_POLICIES MemoryPolicies
Definition: windows_heap.h:916
LIST_ENTRY SubSegmentZones
Definition: windows_heap.h:904
PVOID Heap
Definition: windows_heap.h:905
HEAP_BUCKET Buckets[129]
Definition: windows_heap.h:917
RTL_SRWLOCK Lock
Definition: windows_heap.h:903
ULONG CacheShiftThreshold
Definition: windows_heap.h:912
USER_MEMORY_CACHE_ENTRY UserBlockCache[12]
Definition: windows_heap.h:915
ULONG MinimumCacheDepth
Definition: windows_heap.h:911
PVOID FirstUncommittedAddress
Definition: windows_heap.h:907
PSEGMENT_HEAP SegmentAllocator
Definition: windows_heap.h:920
PVOID NextSegmentInfoArrayAddress
Definition: windows_heap.h:906
HEAP_BUCKET_RUN_INFO RunInfo
Definition: windows_heap.h:914
HEAP_LOCAL_DATA LocalData[1]
Definition: windows_heap.h:921
PRTL_BALANCED_NODE Children[2]
Definition: windows_heap.h:46
PRTL_BALANCED_NODE Left
Definition: windows_heap.h:48
PRTL_BALANCED_NODE Right
Definition: windows_heap.h:49
WPARAM * Buffer
Definition: windows_heap.h:795
WPARAM SizeOfBitMap
Definition: windows_heap.h:794
BYTE WitholdPageCrossingBlocks
Definition: windows_heap.h:436
ULONG PageAlignLargeAllocs
Definition: windows_heap.h:334
struct _RTL_HP_VS_CONFIG::@494 Flags
PRTL_BALANCED_NODE Root
Definition: windows_heap.h:60
PRTL_BALANCED_NODE Min
Definition: windows_heap.h:63
UINT16 GlobalLockCount
Definition: windows_heap.h:623
PUINT8 UncommittedBase
Definition: windows_heap.h:627
WPARAM LargeReservedPages
Definition: windows_heap.h:618
RTL_SRWLOCK LargeMetadataLock
Definition: windows_heap.h:616
PUINT8 ReservedLimit
Definition: windows_heap.h:628
WPARAM Padding[2]
Definition: windows_heap.h:621
RTL_RUN_ONCE StackTraceInitVar
Definition: windows_heap.h:620
USHORT AllocatedFromMetadata
Definition: windows_heap.h:606
HEAP_VS_CONTEXT VsContext
Definition: windows_heap.h:630
HEAP_SEG_CONTEXT SegContexts[2]
Definition: windows_heap.h:629
RTL_HEAP_MEMORY_LIMIT_DATA CommitLimitData
Definition: windows_heap.h:608
HEAP_LFH_CONTEXT LfhContext
Definition: windows_heap.h:631
USHORT ProcessHeapListIndex
Definition: windows_heap.h:605
ULONG GlobalLockOwner
Definition: windows_heap.h:624
HEAP_RUNTIME_MEMORY_STATS MemStats
Definition: windows_heap.h:622
RTL_RB_TREE LargeAllocMetadata
Definition: windows_heap.h:617
WPARAM LargeCommittedPages
Definition: windows_heap.h:619
RTL_SRWLOCK ContextExtendLock
Definition: windows_heap.h:625
RTL_HP_ENV_HANDLE EnvHandle
Definition: windows_heap.h:601
UINT64 ReservedMustBeZero1
Definition: windows_heap.h:610
PVOID ReservedMustBeZero2
Definition: windows_heap.h:612
PUINT8 AllocatedBase
Definition: windows_heap.h:626
Definition: windows_heap.h:892
USHORT Frees
Definition: windows_heap.h:898
ULONG AvailableBlocks
Definition: windows_heap.h:894
ULONG MinimumDepth
Definition: windows_heap.h:895
SLIST_HEADER UserBlocks
Definition: windows_heap.h:893
USHORT Allocations
Definition: windows_heap.h:897
USHORT CacheHits
Definition: windows_heap.h:899
ULONG CacheShiftThreshold
Definition: windows_heap.h:896
PVOID RTL_SRWLOCK
Definition: win.h:173
DWORD * HANDLE
ULONG
PVOID
DWORD
PULONG
struct _HEAP_ENTRY_EXTRA HEAP_ENTRY_EXTRA
struct _HEAP_USERDATA_HEADER * PHEAP_USERDATA_HEADER
__kernel_entry IN PROCESSINFOCLASS OUT PVOID ProcessInformation
struct _HEAP_BUCKET_RUN_INFO * PHEAP_BUCKET_RUN_INFO
struct _HEAP_OPPORTUNISTIC_LARGE_PAGE_STATS HEAP_OPPORTUNISTIC_LARGE_PAGE_STATS
struct _RTL_BITMAP_EX RTL_BITMAP_EX
struct _RTL_HP_LFH_CONFIG * PRTL_HP_LFH_CONFIG
struct _HEAP_LFH_SUBSEGMENT_ENCODED_OFFSETS HEAP_LFH_SUBSEGMENT_ENCODED_OFFSETS
struct _HEAP_LFH_AFFINITY_SLOT * PHEAP_LFH_AFFINITY_SLOT
struct _HEAP_USERDATA_HEADER HEAP_USERDATA_HEADER
struct _HEAP_PAGE_RANGE_DESCRIPTOR * PHEAP_PAGE_RANGE_DESCRIPTOR
struct _HEAP_TAG_ENTRY * PHEAP_TAG_ENTRY
struct _HEAP_EXTENDED_ENTRY * PHEAP_EXTENDED_ENTRY
struct _HEAP_BUCKET * PHEAP_BUCKET
struct _HEAP_ENTRY * PHEAP_ENTRY
struct _HEAP_VS_CHUNK_HEADER_SIZE * PHEAP_VS_CHUNK_HEADER_SIZE
struct _DEBUG_BUFFER * PDEBUG_BUFFER
struct _HEAP_TUNING_PARAMETERS HEAP_TUNING_PARAMETERS
struct _RTL_HEAP_MEMORY_LIMIT_DATA * PRTL_HEAP_MEMORY_LIMIT_DATA
struct _HEAP_LFH_SUBSEGMENT HEAP_LFH_SUBSEGMENT
struct _HEAP_LFH_BUCKET * PHEAP_LFH_BUCKET
struct _RTL_BITMAP_EX * PRTL_BITMAP_EX
struct _HeapBlockExtraInfo * PHeapBlockExtraInfo
struct _HEAP_VS_CONTEXT * PHEAP_VS_CONTEXT
struct _HEAP_LFH_SUBSEGMENT_STAT HEAP_LFH_SUBSEGMENT_STAT
struct _RTL_HP_ENV_HANDLE RTL_HP_ENV_HANDLE
IN DWORD IN OUT PDEBUG_BUFFER DebugBuffer
struct _HEAP_BUCKET HEAP_BUCKET
struct _HEAP_SUBALLOCATOR_CALLBACKS * PHEAP_SUBALLOCATOR_CALLBACKS
struct _HEAP_SEG_CONTEXT HEAP_SEG_CONTEXT
struct _HEAP_SEGMENT HEAP_SEGMENT
struct _HEAP_LFH_BUCKET HEAP_LFH_BUCKET
struct _LFH_HEAP * PLFH_HEAP
Definition: windows_heap.h:40
struct _RTL_HP_SEG_ALLOC_POLICY * PRTL_HP_SEG_ALLOC_POLICY
struct _RTL_BALANCED_NODE RTL_BALANCED_NODE
struct _RTL_HEAP_MEMORY_LIMIT_DATA RTL_HEAP_MEMORY_LIMIT_DATA
struct _LFH_BLOCK_ZONE * PLFH_BLOCK_ZONE
struct _HeapBlock * PHeapBlock
struct _USER_MEMORY_CACHE_ENTRY USER_MEMORY_CACHE_ENTRY
struct _HEAP_VIRTUAL_ALLOC_ENTRY HEAP_VIRTUAL_ALLOC_ENTRY
struct _HEAP_OPPORTUNISTIC_LARGE_PAGE_STATS * PHEAP_OPPORTUNISTIC_LARGE_PAGE_STATS
struct _RTL_RB_TREE RTL_RB_TREE
struct _HEAP_LOCAL_DATA * PHEAP_LOCAL_DATA
Definition: windows_heap.h:38
struct _HEAP_ENTRY_EXTRA * PHEAP_ENTRY_EXTRA
@ PAGE_RANGE_FLAGS_LFH_SUBSEGMENT
Definition: windows_heap.h:390
@ PAGE_RANGE_FLAGS_VS_SUBSEGMENT
Definition: windows_heap.h:394
@ PAGE_RANGE_FLAGS_ALLOCATED
Definition: windows_heap.h:392
@ PAGE_RANGE_FLAGS_FIRST
Definition: windows_heap.h:393
@ PAGE_RANGE_FLAGS_COMMITED
Definition: windows_heap.h:391
struct _HeapBlockBasicInfo * PHeapBlockBasicInfo
struct _HEAP_LFH_SUBSEGMENT_OWNER * PHEAP_LFH_SUBSEGMENT_OWNER
struct _HEAP_LFH_FAST_REF HEAP_LFH_FAST_REF
struct _LFH_HEAP LFH_HEAP
enum _RTLP_HP_LOCK_TYPE RTLP_HP_LOCK_TYPE
struct _HEAP_LFH_FAST_REF * PHEAP_LFH_FAST_REF
struct _HEAP_TAG_ENTRY HEAP_TAG_ENTRY
struct _HEAP_LOCK * PHEAP_LOCK
struct _HEAP_PSEUDO_TAG_ENTRY HEAP_PSEUDO_TAG_ENTRY
struct _HeapBlockExtraInfo HeapBlockExtraInfo
struct _HEAP_BUCKET_COUNTERS HEAP_BUCKET_COUNTERS
struct _HEAP HEAP
struct _INTERLOCK_SEQ INTERLOCK_SEQ
struct _HEAP_BUCKET_RUN_INFO HEAP_BUCKET_RUN_INFO
struct _INTERLOCK_SEQ * PINTERLOCK_SEQ
struct _HEAP_USERDATA_OFFSETS HEAP_USERDATA_OFFSETS
struct _RTL_HP_VS_CONFIG RTL_HP_VS_CONFIG
struct _HEAP_VS_CHUNK_HEADER HEAP_VS_CHUNK_HEADER
struct _HEAP_COUNTERS HEAP_COUNTERS
struct _HEAP_RUNTIME_MEMORY_STATS * PHEAP_RUNTIME_MEMORY_STATS
struct _HEAP_LOCAL_DATA HEAP_LOCAL_DATA
struct _HEAP_RUNTIME_MEMORY_STATS HEAP_RUNTIME_MEMORY_STATS
struct _HEAP_UNPACKED_ENTRY * PHEAP_UNPACKED_ENTRY
_RTLP_HP_LOCK_TYPE
Definition: windows_heap.h:318
@ HeapLockPaged
Definition: windows_heap.h:319
@ HeapLockNonPaged
Definition: windows_heap.h:320
@ HeapLockTypeMax
Definition: windows_heap.h:321
struct _HEAP_VS_CHUNK_HEADER * PHEAP_VS_CHUNK_HEADER
struct _HeapInformation * PHeapInformation
struct _HEAP_LARGE_ALLOC_DATA * PHEAP_LARGE_ALLOC_DATA
struct _HEAP_LFH_SUBSEGMENT_STAT * PHEAP_LFH_SUBSEGMENT_STAT
struct _SEGMENT_HEAP SEGMENT_HEAP
IN BOOLEAN EventPair
Definition: windows_heap.h:997
struct _RTL_HP_ENV_HANDLE * PRTL_HP_ENV_HANDLE
struct _HEAP_LARGE_ALLOC_DATA HEAP_LARGE_ALLOC_DATA
struct _DEBUG_HEAP_INFORMATION DEBUG_HEAP_INFORMATION
struct _HEAP_SUBSEGMENT * PHEAP_SUBSEGMENT
Definition: windows_heap.h:39
struct _HEAP_VIRTUAL_ALLOC_ENTRY * PHEAP_VIRTUAL_ALLOC_ENTRY
struct _HEAP_LFH_SUBSEGMENT * PHEAP_LFH_SUBSEGMENT
struct _HEAP_PSEUDO_TAG_ENTRY * PHEAP_PSEUDO_TAG_ENTRY
struct _HEAP_SUBALLOCATOR_CALLBACKS HEAP_SUBALLOCATOR_CALLBACKS
struct _RTL_BALANCED_NODE * PRTL_BALANCED_NODE
Definition: windows_heap.h:43
struct _HEAP_LOCAL_SEGMENT_INFO * PHEAP_LOCAL_SEGMENT_INFO
__kernel_entry IN PROCESSINFOCLASS OUT PVOID IN ULONG OUT PULONG ReturnLength
struct _HEAP_PAGE_SEGMENT * PHEAP_PAGE_SEGMENT
__kernel_entry IN PROCESSINFOCLASS OUT PVOID IN ULONG ProcessInformationLength
struct _HeapInformation HeapInformation
struct _HEAP_COUNTERS * PHEAP_COUNTERS
struct _HEAP_LOCAL_SEGMENT_INFO HEAP_LOCAL_SEGMENT_INFO
struct _LFH_BLOCK_ZONE LFH_BLOCK_ZONE
struct _HEAP_LFH_SUBSEGMENT_OWNER HEAP_LFH_SUBSEGMENT_OWNER
struct _RTL_HP_LFH_CONFIG RTL_HP_LFH_CONFIG
struct _HeapBlockBasicInfo HeapBlockBasicInfo
struct _HEAP_LFH_MEM_POLICIES HEAP_LFH_MEM_POLICIES
struct _HEAP * PHEAP
Definition: windows_heap.h:41
struct _SEGMENT_HEAP * PSEGMENT_HEAP
struct _HEAP_LFH_MEM_POLICIES * PHEAP_LFH_MEM_POLICIES
struct _HeapBlock HeapBlock
struct _USER_MEMORY_CACHE_ENTRY * PUSER_MEMORY_CACHE_ENTRY
struct _HEAP_SUBSEGMENT HEAP_SUBSEGMENT
struct _HEAP_USERDATA_OFFSETS * PHEAP_USERDATA_OFFSETS
struct _HEAP_VS_CHUNK_HEADER_SIZE HEAP_VS_CHUNK_HEADER_SIZE
struct _HEAP_ENTRY HEAP_ENTRY
struct _HEAP_VS_SUBSEGMENT HEAP_VS_SUBSEGMENT
struct _HEAP_BUCKET_COUNTERS * PHEAP_BUCKET_COUNTERS
struct _HEAP_LFH_SUBSEGMENT_STATS HEAP_LFH_SUBSEGMENT_STATS
struct _HEAP_PAGE_SEGMENT HEAP_PAGE_SEGMENT
__kernel_entry IN PROCESSINFOCLASS ProcessInformationClass
struct _HEAP_EXTENDED_ENTRY HEAP_EXTENDED_ENTRY
struct _HEAP_LFH_SUBSEGMENT_ENCODED_OFFSETS * PHEAP_LFH_SUBSEGMENT_ENCODED_OFFSETS
struct _HEAP_LFH_SUBSEGMENT_STATS * PHEAP_LFH_SUBSEGMENT_STATS
struct _HEAP_LOCK HEAP_LOCK
struct _HEAP_VS_CONTEXT HEAP_VS_CONTEXT
struct _HEAP_LFH_CONTEXT * PHEAP_LFH_CONTEXT
struct _HEAP_SEGMENT * PHEAP_SEGMENT
struct _HEAP_SEG_CONTEXT * PHEAP_SEG_CONTEXT
struct _HEAP_PAGE_RANGE_DESCRIPTOR HEAP_PAGE_RANGE_DESCRIPTOR
struct _DEBUG_HEAP_INFORMATION * PDEBUG_HEAP_INFORMATION
IN DWORD DebugInfoClassMask
NTSTATUS(NTAPI *RtlQueryProcessDebugInformation)(IN DWORD ProcessId
struct _HEAP_TUNING_PARAMETERS * PHEAP_TUNING_PARAMETERS
struct _RTL_RB_TREE * PRTL_RB_TREE
struct _HEAP_UNPACKED_ENTRY HEAP_UNPACKED_ENTRY
struct _HEAP_VS_SUBSEGMENT * PHEAP_VS_SUBSEGMENT
struct _HEAP_LFH_CONTEXT HEAP_LFH_CONTEXT
struct _RTL_HP_SEG_ALLOC_POLICY RTL_HP_SEG_ALLOC_POLICY
struct _HEAP_LFH_AFFINITY_SLOT HEAP_LFH_AFFINITY_SLOT
struct _RTL_HP_VS_CONFIG * PRTL_HP_VS_CONFIG
struct _DEBUG_BUFFER DEBUG_BUFFER