C_ASSERT(sizeof(PHYSICAL_PAGE) == sizeof(MMPFN));
+#define MiInsertInListTail(x, y) MiInsertInListTail(x, (PMMPFN)y)
//#define MiGetPfnEntry(Pfn) ((PPHYSICAL_PAGE)MiGetPfnEntry(Pfn))
#define MiGetPfnEntryIndex(x) MiGetPfnEntryIndex((struct _MMPFN*)x)
#define LockCount Flags.LockCount
return;
}
- Page = MiGetPfnEntry(Pfn);
+ Page = (PVOID)MiGetPfnEntry(Pfn);
ASSERT(Page);
Page->u3.e2.ReferenceCount++;
DPRINT("MmGetReferenceCountPage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT);
oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
- Page = MiGetPfnEntry(Pfn);
+ Page = (PVOID)MiGetPfnEntry(Pfn);
ASSERT(Page);
RCount = Page->u3.e2.ReferenceCount;
DPRINT("MmDereferencePage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT);
- Page = MiGetPfnEntry(Pfn);
+ Page = (PVOID)MiGetPfnEntry(Pfn);
ASSERT(Page);
Page->u3.e2.ReferenceCount--;
DPRINT1("MmAllocPage(): Out of memory\n");
return 0;
}
- PageDescriptor = MiRemoveHeadList(&MmFreePageListHead);
+ PageDescriptor = (PVOID)MiRemoveHeadList(&MmFreePageListHead);
NeedClear = TRUE;
}
else
{
- PageDescriptor = MiRemoveHeadList(&MmZeroedPageListHead);
+ PageDescriptor = (PVOID)MiRemoveHeadList(&MmZeroedPageListHead);
}
PageDescriptor->u3.e2.ReferenceCount = 1;
oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
while (MmFreePageListHead.Total)
{
- PageDescriptor = MiRemoveHeadList(&MmFreePageListHead);
+ PageDescriptor = (PVOID)MiRemoveHeadList(&MmFreePageListHead);
/* We set the page to used, because MmCreateVirtualMapping failed with unused pages */
KeReleaseQueuedSpinLock(LockQueuePfnLock, oldIrql);
Pfn = PageDescriptor - MmPfnDatabase[0];