#include <ntoskrnl.h>
#define NDEBUG
-#include <internal/debug.h>
+#include <debug.h>
#include <reactos/exeformat.h>
#if defined (ALLOC_PRAGMA)
if (!NT_SUCCESS(Status))
{
/* Failed, free memory */
- ExFreePool(ObjectNameInfo);
+ ExFreePoolWithTag(ObjectNameInfo, TAG('M', 'm', ' ', ' '));
return Status;
}
{
DPRINT1("Image segment %d still referenced (was %d)\n", i,
SectionSegments[i].ReferenceCount);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmFreePageTablesSectionSegment(&SectionSegments[i]);
}
if (Segment->ReferenceCount != 0)
{
DPRINT1("Data segment still referenced\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmFreePageTablesSectionSegment(Segment);
ExFreePool(Segment);
TAG_SECTION_PAGE_TABLE);
if (Table == NULL)
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
memset(Table, 0, sizeof(SECTION_PAGE_TABLE));
DPRINT("Table %x\n", Table);
if (Entry == 0)
{
DPRINT1("Entry == 0 for MmSharePageEntrySectionSegment\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
if (SHARE_COUNT_FROM_SSE(Entry) == MAX_SHARE_COUNT)
{
DPRINT1("Maximum share count reached\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
if (IS_SWAP_FROM_SSE(Entry))
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
Entry = MAKE_SSE(PAGE_FROM_SSE(Entry), SHARE_COUNT_FROM_SSE(Entry) + 1);
MmSetPageEntrySectionSegment(Segment, Offset, Entry);
if (Entry == 0)
{
DPRINT1("Entry == 0 for MmUnsharePageEntrySectionSegment\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
if (SHARE_COUNT_FROM_SSE(Entry) == 0)
{
DPRINT1("Zero share count for unshare\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
if (IS_SWAP_FROM_SSE(Entry))
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
Entry = MAKE_SSE(PAGE_FROM_SSE(Entry), SHARE_COUNT_FROM_SSE(Entry) - 1);
/*
if (!NT_SUCCESS(Status))
{
DPRINT1("CcRosUnmapCacheSegment failed, status = %x\n", Status);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
}
}
if (!NT_SUCCESS(Status))
{
DPRINT1("MM: Failed to write to swap page (Status was 0x%.8X)\n", Status);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
}
MmSetPageEntrySectionSegment(Segment, Offset, MAKE_SWAP_SSE(SavedSwapEntry));
else
{
DPRINT1("Found a swapentry for a non private page in an image or data file sgment\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
}
}
if (PageOp == NULL)
{
DPRINT1("MmGetPageOp failed\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
/*
if (Status != STATUS_SUCCESS)
{
DPRINT1("Failed to wait for page op, status = %x\n", Status);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
if (PageOp->Status == STATUS_PENDING)
{
DPRINT1("Woke for page op before completion\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmLockAddressSpace(AddressSpace);
/*
if (!NT_SUCCESS(Status))
{
DPRINT1("Unable to create virtual mapping\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmInsertRmap(Page, Process, (PVOID)PAddress);
}
if (Segment->Flags & MM_PAGEFILE_SEGMENT)
{
DPRINT1("Found a swaped out private page in a pagefile section.\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmUnlockSectionSegment(Segment);
Status = MmRequestPageMemoryConsumer(MC_USER, TRUE, &Page);
if (!NT_SUCCESS(Status))
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
Status = MmReadFromSwapPage(SwapEntry, Page);
if (!NT_SUCCESS(Status))
{
DPRINT1("MmReadFromSwapPage failed, status = %x\n", Status);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmLockAddressSpace(AddressSpace);
Status = MmCreateVirtualMapping(Process,
if (!NT_SUCCESS(Status))
{
DPRINT("MmCreateVirtualMapping failed, not out of memory\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
return(Status);
}
if (!NT_SUCCESS(Status))
{
DPRINT("MmCreateVirtualMappingUnsafe failed, not out of memory\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
return(Status);
}
/*
}
if (!NT_SUCCESS(Status))
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
Status = MmCreateVirtualMapping(Process,
Address,
if (!NT_SUCCESS(Status))
{
DPRINT("MmCreateVirtualMapping failed, not out of memory\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
return(Status);
}
MmInsertRmap(Page, Process, (PVOID)PAddress);
if (Entry != Entry1)
{
DPRINT1("Someone changed ppte entry while we slept\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
/*
if (!NT_SUCCESS(Status))
{
DPRINT1("Unable to create virtual mapping\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmInsertRmap(Page, Process, (PVOID)PAddress);
Status = MmRequestPageMemoryConsumer(MC_USER, TRUE, &Page);
if (!NT_SUCCESS(Status))
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
Status = MmReadFromSwapPage(SwapEntry, Page);
if (!NT_SUCCESS(Status))
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
/*
if (Entry != Entry1)
{
DPRINT1("Someone changed ppte entry while we slept\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
/*
if (!NT_SUCCESS(Status))
{
DPRINT1("Unable to create virtual mapping\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmInsertRmap(Page, Process, (PVOID)PAddress);
if (Locked)
if (!NT_SUCCESS(Status))
{
DPRINT1("Unable to create virtual mapping\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmInsertRmap(Page, Process, (PVOID)PAddress);
if (Locked)
if (PageOp == NULL)
{
DPRINT1("MmGetPageOp failed\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
/*
if (Status == STATUS_TIMEOUT)
{
DPRINT1("Failed to wait for page op, status = %x\n", Status);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
if (PageOp->Status == STATUS_PENDING)
{
DPRINT1("Woke for page op before completion\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
/*
* Restart the operation
Status = MmRequestPageMemoryConsumer(MC_USER, TRUE, &NewPage);
if (!NT_SUCCESS(Status))
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
/*
if (!NT_SUCCESS(Status))
{
DPRINT("MmCreateVirtualMapping failed, not out of memory\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
return(Status);
}
if (!NT_SUCCESS(Status))
{
DPRINT1("Unable to create virtual mapping\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
if (Locked)
{
DPRINT1("Trying to page out from physical memory section address 0x%X "
"process %d\n", Address,
Process ? Process->UniqueProcessId : 0);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
/*
{
DPRINT1("Trying to page out not-present page at (%d,0x%.8X).\n",
Process ? Process->UniqueProcessId : 0, Address);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
Page = MmGetPfnForProcess(Process, Address);
SwapEntry = MmGetSavedSwapEntryPage(Page);
if(!MiIsPageFromCache(MemoryArea, Context.Offset))
{
DPRINT1("Direct mapped non private page is not associated with the cache.\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
}
else
if (!(Context.Segment->Flags & MM_PAGEFILE_SEGMENT) &&
!(Context.Segment->Characteristics & IMAGE_SCN_MEM_SHARED))
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
}
{
DPRINT1("Found a %s private page (address %x) in a pagefile segment.\n",
Context.WasDirty ? "dirty" : "clean", Address);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
if (!Context.WasDirty && SwapEntry != 0)
{
{
DPRINT1("Found a %s private page (address %x) in a shared section segment.\n",
Context.WasDirty ? "dirty" : "clean", Address);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
if (!Context.WasDirty || SwapEntry != 0)
{
{
DPRINT1("Found a swapentry for a non private and direct mapped page (address %x)\n",
Address);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
Status = CcRosUnmapCacheSegment(Bcb, FileOffset, FALSE);
if (!NT_SUCCESS(Status))
{
DPRINT1("CCRosUnmapCacheSegment failed, status = %x\n", Status);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
PageOp->Status = STATUS_SUCCESS;
MmspCompleteAndReleasePageOp(PageOp);
{
DPRINT1("Found a swap entry for a non dirty, non private and not direct mapped page (address %x)\n",
Address);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmReleasePageMemoryConsumer(MC_USER, Page);
PageOp->Status = STATUS_SUCCESS;
MmUnlockAddressSpace(AddressSpace);
if (!NT_SUCCESS(Status))
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmReleasePageMemoryConsumer(MC_USER, Page);
PageOp->Status = STATUS_SUCCESS;
MmUnlockAddressSpace(AddressSpace);
if (!NT_SUCCESS(Status))
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
}
else
DPRINT1("Trying to write back page from physical memory mapped at %X "
"process %d\n", Address,
Process ? Process->UniqueProcessId : 0);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
/*
{
DPRINT1("Trying to page out not-present page at (%d,0x%.8X).\n",
Process ? Process->UniqueProcessId : 0, Address);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
Page = MmGetPfnForProcess(Process, Address);
SwapEntry = MmGetSavedSwapEntryPage(Page);
if ((MemoryArea->Flags & SEC_NO_CHANGE) &&
Region->Protect != Protect)
{
- CHECKPOINT1;
return STATUS_INVALID_PAGE_PROTECTION;
}
if (!NT_SUCCESS(Status))
{
DPRINT1("Failed to create PhysicalMemory section\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
Status = ObInsertObject(PhysSection,
NULL,
if(Length == 0)
{
- KEBUGCHECK(STATUS_INVALID_PARAMETER_4);
+ ASSERT(FALSE);
}
FileOffset = *Offset;
/* Negative/special offset: it cannot be used in this context */
if(FileOffset.u.HighPart < 0)
{
- KEBUGCHECK(STATUS_INVALID_PARAMETER_5);
+ ASSERT(FALSE);
}
AdjustOffset = PAGE_ROUND_DOWN(FileOffset.u.LowPart);
}
else
{
- ExFreePool(Buffer);
+ ExFreePoolWithTag(Buffer, TAG('M', 'm', 'X', 'r'));
}
return Status;
break;
}
- ExFreePool(FileHeaderBuffer);
+ ExFreePoolWithTag(FileHeaderBuffer, TAG('M', 'm', 'X', 'r'));
/*
* No loader handled the format
*/
if (Protect & ~PAGE_FLAGS_VALID_FROM_USER_MODE)
{
- CHECKPOINT1;
return STATUS_INVALID_PARAMETER_10;
}
tmpProtect != PAGE_EXECUTE_READWRITE &&
tmpProtect != PAGE_EXECUTE_WRITECOPY)
{
- CHECKPOINT1;
return STATUS_INVALID_PAGE_PROTECTION;
}
if (Status != STATUS_SUCCESS)
{
DPRINT1("Failed to wait for page op, status = %x\n", Status);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmLockAddressSpace(AddressSpace);
if (Segment->Flags & MM_PAGEFILE_SEGMENT)
{
DPRINT1("Found a swap entry for a page in a pagefile section.\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmFreeSwapPage(SwapEntry);
}
if (Segment->Flags & MM_PAGEFILE_SEGMENT)
{
DPRINT1("Found a private page in a pagefile section.\n");
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
/*
* Just dereference private pages
{
CurrentEntry = RemoveHeadList(RegionListHead);
CurrentRegion = CONTAINING_RECORD(CurrentEntry, MM_REGION, RegionListEntry);
- ExFreePool(CurrentRegion);
+ ExFreePoolWithTag(CurrentRegion, TAG_MM_REGION);
}
if (Section->AllocationAttributes & SEC_PHYSICALMEMORY)
if (Status != STATUS_SUCCESS)
{
DPRINT1("Failed to wait for page op, status = %x\n", Status);
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
MmLockAddressSpace(AddressSpace);
MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace,
}
if (i >= NrSegments)
{
- KEBUGCHECK(0);
+ ASSERT(FALSE);
}
for (i = 0; i < NrSegments; i++)
Protect != PAGE_EXECUTE_READWRITE &&
Protect != PAGE_EXECUTE_WRITECOPY)
{
- CHECKPOINT1;
return STATUS_INVALID_PAGE_PROTECTION;
}
if ((Protect & (PAGE_READWRITE|PAGE_EXECUTE_READWRITE)) &&
!(Section->SectionPageProtection & (PAGE_READWRITE|PAGE_EXECUTE_READWRITE)))
{
- CHECKPOINT1;
return STATUS_SECTION_PROTECTION;
}
/* check for read access */
if ((Protect & (PAGE_READONLY|PAGE_WRITECOPY|PAGE_EXECUTE_READ|PAGE_EXECUTE_WRITECOPY)) &&
!(Section->SectionPageProtection & (PAGE_READONLY|PAGE_READWRITE|PAGE_WRITECOPY|PAGE_EXECUTE_READ|PAGE_EXECUTE_READWRITE|PAGE_EXECUTE_WRITECOPY)))
{
- CHECKPOINT1;
return STATUS_SECTION_PROTECTION;
}
/* check for execute access */
if ((Protect & (PAGE_EXECUTE|PAGE_EXECUTE_READ|PAGE_EXECUTE_READWRITE|PAGE_EXECUTE_WRITECOPY)) &&
!(Section->SectionPageProtection & (PAGE_EXECUTE|PAGE_EXECUTE_READ|PAGE_EXECUTE_READWRITE|PAGE_EXECUTE_WRITECOPY)))
{
- CHECKPOINT1;
return STATUS_SECTION_PROTECTION;
}
{
/* Following this pointer would lead to us to the dark side */
/* What to do? Bugcheck? Return status? Do the mambo? */
- KEBUGCHECK(MEMORY_MANAGEMENT);
+ KeBugCheck(MEMORY_MANAGEMENT);
}
if (SectionOffset == NULL)
Protection != PAGE_EXECUTE_READWRITE &&
Protection != PAGE_EXECUTE_WRITECOPY)
{
- CHECKPOINT1;
return STATUS_INVALID_PAGE_PROTECTION;
}