ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

heappage.c File Reference
#include <rtl.h>
#include <heap.h>
#include <debug.h>

Go to the source code of this file.

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

Generated on Sun May 27 2012 06:04:50 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.