Data Structures |
| struct | PDPH_BLOCK_INFORMATION |
| struct | PDPH_HEAP_BLOCK |
| struct | PDPH_HEAP_ROOT |
Defines |
| #define | NDEBUG |
| #define | DPH_RESERVE_SIZE 0x100000 |
| #define | DPH_POOL_SIZE 0x4000 |
| #define | DPH_FREE_LIST_MINIMUM 8 |
| #define | DPH_BREAK_ON_RESERVE_FAIL 0x01 |
| #define | DPH_BREAK_ON_COMMIT_FAIL 0x02 |
| #define | DPH_BREAK_ON_RELEASE_FAIL 0x04 |
| #define | DPH_BREAK_ON_FREE_FAIL 0x08 |
| #define | DPH_BREAK_ON_PROTECT_FAIL 0x10 |
| #define | DPH_BREAK_ON_NULL_FREE 0x80 |
| #define | DPH_DEBUG_INTERNAL_VALIDATE 0x01 |
| #define | DPH_DEBUG_VERBOSE 0x04 |
| #define | DPH_EXTRA_LOG_STACK_TRACES 0x02 |
| #define | DPH_EXTRA_CHECK_UNDERRUN 0x10 |
| #define | DPH_FILL 0xEEEEEEEE |
| #define | DPH_FILL_START_STAMP_1 0xABCDBBBB |
| #define | DPH_FILL_START_STAMP_2 0xABCDBBBA |
| #define | DPH_FILL_END_STAMP_1 0xDCBABBBB |
| #define | DPH_FILL_END_STAMP_2 0xDCBABBBA |
| #define | DPH_FILL_SUFFIX 0xD0 |
| #define | DPH_FILL_INFIX 0xC0 |
| #define | DPH_VALINFO_BAD_START_STAMP 0x01 |
| #define | DPH_VALINFO_BAD_END_STAMP 0x02 |
| #define | DPH_VALINFO_BAD_POINTER 0x04 |
| #define | DPH_VALINFO_BAD_PREFIX_PATTERN 0x08 |
| #define | DPH_VALINFO_BAD_SUFFIX_PATTERN 0x10 |
| #define | DPH_VALINFO_EXCEPTION 0x20 |
| #define | DPH_VALINFO_1 0x40 |
| #define | DPH_VALINFO_BAD_INFIX_PATTERN 0x80 |
| #define | DPH_VALINFO_ALREADY_FREED 0x100 |
| #define | DPH_VALINFO_CORRUPTED_AFTER_FREE 0x200 |
| #define | DPH_SIGNATURE 0xFFEEDDCC |
| #define | IS_BIASED_POINTER(ptr) ((ULONG_PTR)(ptr) & 1) |
| #define | POINTER_REMOVE_BIAS(ptr) ((ULONG_PTR)(ptr) & ~(ULONG_PTR)1) |
| #define | POINTER_ADD_BIAS(ptr) ((ULONG_PTR)(ptr) | 1) |
Functions |
| BOOLEAN NTAPI | RtlpDphGrowVirtual (PDPH_HEAP_ROOT DphRoot, SIZE_T Size) |
| BOOLEAN NTAPI | RtlpDphIsNormalFreeHeapBlock (PVOID Block, PULONG ValidationInformation, BOOLEAN CheckFillers) |
| VOID NTAPI | RtlpDphReportCorruptedBlock (PDPH_HEAP_ROOT DphRoot, ULONG Reserved, PVOID Block, ULONG ValidationInfo) |
| BOOLEAN NTAPI | RtlpDphNormalHeapValidate (PDPH_HEAP_ROOT DphRoot, ULONG Flags, PVOID BaseAddress) |
| VOID NTAPI | RtlpDphRaiseException (NTSTATUS Status) |
| PVOID NTAPI | RtlpDphPointerFromHandle (PVOID Handle) |
| VOID NTAPI | RtlpDphEnterCriticalSection (PDPH_HEAP_ROOT DphRoot, ULONG Flags) |
| VOID NTAPI | RtlpDphLeaveCriticalSection (PDPH_HEAP_ROOT DphRoot) |
| VOID NTAPI | RtlpDphPreProcessing (PDPH_HEAP_ROOT DphRoot, ULONG Flags) |
| VOID NTAPI | RtlpDphPostProcessing (PDPH_HEAP_ROOT DphRoot) |
| NTSTATUS NTAPI | RtlpSecMemFreeVirtualMemory (HANDLE Process, PVOID *Base, PSIZE_T Size, ULONG Type) |
| NTSTATUS NTAPI | RtlpDphAllocateVm (PVOID *Base, SIZE_T Size, ULONG Type, ULONG Protection) |
| NTSTATUS NTAPI | RtlpDphFreeVm (PVOID Base, SIZE_T Size, ULONG Type) |
| NTSTATUS NTAPI | RtlpDphProtectVm (PVOID Base, SIZE_T Size, ULONG Protection) |
| BOOLEAN NTAPI | RtlpDphWritePageHeapBlockInformation (PDPH_HEAP_ROOT DphRoot, PVOID UserAllocation, SIZE_T Size, SIZE_T UserSize) |
| VOID NTAPI | RtlpDphPlaceOnBusyList (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK DphNode) |
| VOID NTAPI | RtlpDphPlaceOnFreeList (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK Node) |
| VOID NTAPI | RtlpDphPlaceOnPoolList (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK Node) |
| VOID NTAPI | RtlpDphPlaceOnVirtualList (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK Node) |
| PDPH_HEAP_BLOCK NTAPI | RtlpDphTakeNodeFromUnusedList (PDPH_HEAP_ROOT DphRoot) |
| VOID NTAPI | RtlpDphReturnNodeToUnusedList (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK Node) |
| VOID NTAPI | RtlpDphRemoveFromAvailableList (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK Node) |
| VOID NTAPI | RtlpDphRemoveFromBusyList (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK Node) |
| VOID NTAPI | RtlpDphRemoveFromFreeList (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK Node, PDPH_HEAP_BLOCK Prev) |
| VOID NTAPI | RtlpDphCoalesceNodeIntoAvailable (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK Node) |
| VOID NTAPI | RtlpDphCoalesceFreeIntoAvailable (PDPH_HEAP_ROOT DphRoot, ULONG LeaveOnFreeList) |
| VOID NTAPI | RtlpDphAddNewPool (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK NodeBlock, PVOID Virtual, SIZE_T Size, BOOLEAN PlaceOnPool) |
| PDPH_HEAP_BLOCK NTAPI | RtlpDphSearchAvailableMemoryListForBestFit (PDPH_HEAP_ROOT DphRoot, SIZE_T Size) |
| PDPH_HEAP_BLOCK NTAPI | RtlpDphFindAvailableMemory (PDPH_HEAP_ROOT DphRoot, SIZE_T Size, BOOLEAN Grow) |
| PDPH_HEAP_BLOCK NTAPI | RtlpDphFindBusyMemory (PDPH_HEAP_ROOT DphRoot, PVOID pUserMem) |
| NTSTATUS NTAPI | RtlpDphSetProtectionBeforeUse (PDPH_HEAP_ROOT DphRoot, PUCHAR VirtualBlock, ULONG UserSize) |
| NTSTATUS NTAPI | RtlpDphSetProtectionAfterUse (PDPH_HEAP_ROOT DphRoot, PDPH_HEAP_BLOCK Node) |
| PDPH_HEAP_BLOCK NTAPI | RtlpDphAllocateNode (PDPH_HEAP_ROOT DphRoot) |
| RTL_GENERIC_COMPARE_RESULTS NTAPI | RtlpDphCompareNodeForTable (IN PRTL_AVL_TABLE Table, IN PVOID FirstStruct, IN PVOID SecondStruct) |
| PVOID NTAPI | RtlpDphAllocateNodeForTable (IN PRTL_AVL_TABLE Table, IN CLONG ByteSize) |
| VOID NTAPI | RtlpDphFreeNodeForTable (IN PRTL_AVL_TABLE Table, IN PVOID Buffer) |
| NTSTATUS NTAPI | RtlpDphInitializeDelayedFreeQueue () |
| VOID NTAPI | RtlpDphFreeDelayedBlocksFromHeap (PDPH_HEAP_ROOT DphRoot, PHEAP NormalHeap) |
| NTSTATUS NTAPI | RtlpDphTargetDllsLogicInitialize () |
| VOID NTAPI | RtlpDphInternalValidatePageHeap (PDPH_HEAP_ROOT DphRoot, PVOID Address, ULONG Value) |
| VOID NTAPI | RtlpDphVerifyIntegrity (PDPH_HEAP_ROOT DphRoot) |
| BOOLEAN NTAPI | RtlpDphIsPageHeapBlock (PDPH_HEAP_ROOT DphRoot, PVOID Block, PULONG ValidationInformation, BOOLEAN CheckFillers) |
| NTSTATUS NTAPI | RtlpDphProcessStartupInitialization () |
| BOOLEAN NTAPI | RtlpDphShouldAllocateInPageHeap (PDPH_HEAP_ROOT DphRoot, SIZE_T Size) |
| HANDLE NTAPI | RtlpPageHeapCreate (ULONG Flags, PVOID Addr, SIZE_T TotalSize, SIZE_T CommitSize, PVOID Lock, PRTL_HEAP_PARAMETERS Parameters) |
| PVOID NTAPI | RtlpPageHeapDestroy (HANDLE HeapPtr) |
| PVOID NTAPI | RtlpPageHeapAllocate (IN PVOID HeapPtr, IN ULONG Flags, IN SIZE_T Size) |
| BOOLEAN NTAPI | RtlpPageHeapFree (HANDLE HeapPtr, ULONG Flags, PVOID Ptr) |
| PVOID NTAPI | RtlpPageHeapReAllocate (HANDLE HeapPtr, ULONG Flags, PVOID Ptr, SIZE_T Size) |
| BOOLEAN NTAPI | RtlpPageHeapGetUserInfo (PVOID HeapHandle, ULONG Flags, PVOID BaseAddress, PVOID *UserValue, PULONG UserFlags) |
| BOOLEAN NTAPI | RtlpPageHeapSetUserValue (PVOID HeapHandle, ULONG Flags, PVOID BaseAddress, PVOID UserValue) |
| BOOLEAN NTAPI | RtlpPageHeapSetUserFlags (PVOID HeapHandle, ULONG Flags, PVOID BaseAddress, ULONG UserFlagsReset, ULONG UserFlagsSet) |
| SIZE_T NTAPI | RtlpPageHeapSize (HANDLE HeapHandle, ULONG Flags, PVOID BaseAddress) |
| BOOLEAN NTAPI | RtlpDebugPageHeapValidate (PVOID HeapHandle, ULONG Flags, PVOID BaseAddress) |
Variables |
| BOOLEAN | RtlpPageHeapEnabled = FALSE |
| ULONG | RtlpDphGlobalFlags |
| ULONG | RtlpPageHeapSizeRangeStart |
| ULONG | RtlpPageHeapSizeRangeEnd |
| ULONG | RtlpPageHeapDllRangeStart |
| ULONG | RtlpPageHeapDllRangeEnd |
| WCHAR | RtlpDphTargetDlls [512] |
| LIST_ENTRY | RtlpDphPageHeapList |
| BOOLEAN | RtlpDphPageHeapListInitialized |
| RTL_CRITICAL_SECTION | RtlpDphPageHeapListLock |
| ULONG | RtlpDphPageHeapListLength |
| UNICODE_STRING | RtlpDphTargetDllsUnicode |
| RTL_CRITICAL_SECTION | RtlpDphDelayedFreeQueueLock |
| LIST_ENTRY | RtlpDphDelayedFreeQueue |
| SLIST_HEADER | RtlpDphDelayedTemporaryPushList |
| SIZE_T | RtlpDphMemoryUsedByDelayedFreeBlocks |
| ULONG | RtlpDphNumberOfDelayedFreeBlocks |
| LONG | RtlpDphCounter |
| LONG | RtlpDphAllocFails |
| LONG | RtlpDphReleaseFails |
| LONG | RtlpDphFreeFails |
| LONG | RtlpDphProtectFails |
| ULONG | RtlpDphBreakOptions = 0 |
| ULONG | RtlpDphDebugOptions |