VOID HeapCleanupAll(VOID) { PHEAP Heap; Heap = FrLdrDefaultHeap; TRACE("Heap statistics for default heap:\n" "CurrentAlloc=0x%lx, MaxAlloc=0x%lx, LargestAllocation=0x%lx\n" "NumAllocs=%ld, NumFrees=%ld\n", Heap->CurrentAllocBytes, Heap->MaxAllocBytes, Heap->LargestAllocation, Heap->NumAllocs, Heap->NumFrees); TRACE("AllocTime = %I64d, FreeTime = %I64d, sum = %I64d\n", Heap->AllocationTime, Heap->FreeTime, Heap->AllocationTime + Heap->FreeTime); /* Release fre pages */ HeapRelease(FrLdrDefaultHeap); Heap = FrLdrTempHeap; TRACE("Heap statistics for temp heap:\n" "CurrentAlloc=0x%lx, MaxAlloc=0x%lx, LargestAllocation=0x%lx\n" "NumAllocs=%ld, NumFrees=%ld\n", Heap->CurrentAllocBytes, Heap->MaxAllocBytes, Heap->LargestAllocation, Heap->NumAllocs, Heap->NumFrees); /* Destroy the heap */ HeapDestroy(FrLdrTempHeap); }
PluginContext::~PluginContext() { HeapRelease(0); delete [] heap; }