2291{
2299
2300
2302
2303
2304 Heap = (
PHEAP)HeapPtr;
2306
2307
2310
2311
2313
2314
2316 {
2317
2321 {
2322
2323 DPRINT1(
"HEAP: Trying to free an invalid address %p!\n",
Ptr);
2326 }
2327 }
2329 {
2330
2331 DPRINT1(
"HEAP: Trying to free an invalid address %p!\n",
Ptr);
2334 }
2336
2337
2339 {
2342 }
2343
2345 {
2346
2348
2349
2351
2352
2353
2354 BlockSize = 0;
2356 (
PVOID *)&VirtualEntry,
2357 &BlockSize,
2359
2361 {
2362 DPRINT1(
"HEAP: Failed releasing memory with Status 0x%08X. Heap %p, ptr %p, base address %p\n",
2365 }
2366 }
2367 else
2368 {
2369
2370 BlockSize = HeapEntry->Size;
2371
2372
2373
2374
2377 {
2380 &BlockSize,
2382 }
2383
2384
2387 {
2389 }
2390 else
2391 {
2392
2394
2396 TagIndex != 0)
2397 {
2398
2400 }
2401 }
2402 }
2403
2404
2406
2408}
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI RtlEnterHeapLock(IN OUT PHEAP_LOCK Lock, IN BOOLEAN Exclusive)
KPROCESSOR_MODE NTAPI RtlpGetMode(VOID)
NTSTATUS NTAPI RtlLeaveHeapLock(IN OUT PHEAP_LOCK Lock)
#define RemoveEntryList(Entry)
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
NTSYSAPI void WINAPI RtlSetLastWin32ErrorAndNtStatusFromNtStatus(NTSTATUS)
#define EXCEPTION_EXECUTE_HANDLER
_In_ PMEMORY_AREA _In_ PVOID _In_ BOOLEAN Locked
#define HEAP_DISABLE_COALESCE_ON_FREE
#define NtCurrentProcess()
#define HEAP_NO_SERIALIZE
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
PHEAP_FREE_ENTRY NTAPI RtlpCoalesceFreeBlocks(PHEAP Heap, PHEAP_FREE_ENTRY FreeEntry, PSIZE_T FreeSize, BOOLEAN Remove)
PHEAP_FREE_ENTRY NTAPI RtlpInsertFreeBlock(PHEAP Heap, PHEAP_FREE_ENTRY FreeEntry, SIZE_T BlockSize)
static VOID RtlpDeCommitFreeBlock(PHEAP Heap, PHEAP_FREE_ENTRY FreeEntry, SIZE_T Size)
struct _HEAP_ENTRY * PHEAP_ENTRY
FORCEINLINE BOOLEAN RtlpHeapIsSpecial(ULONG Flags)
BOOLEAN NTAPI RtlDebugFreeHeap(HANDLE HeapPtr, ULONG Flags, PVOID Ptr)
#define HEAP_ENTRY_VIRTUAL_ALLOC
SIZE_T DeCommitFreeBlockThreshold
SIZE_T DeCommitTotalFreeThreshold
#define CONTAINING_RECORD(address, type, field)
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ _In_ ULONG Flags