From cb6423595317ea6ddaba96d658a9a0a1f8d43aca Mon Sep 17 00:00:00 2001 From: Rafal Kupiec Date: Sat, 13 Jul 2024 15:54:10 +0200 Subject: [PATCH] Use PHYSICAL_ADDRESS data type in MmAllocateHardwareMemory() routine as it is used in MmMapHardwareMemory() as well to avoid the need of data conversion --- xtoskrnl/includes/mmi.h | 2 +- xtoskrnl/mm/hlpool.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/xtoskrnl/includes/mmi.h b/xtoskrnl/includes/mmi.h index 5a9ec12..7118b07 100644 --- a/xtoskrnl/includes/mmi.h +++ b/xtoskrnl/includes/mmi.h @@ -17,7 +17,7 @@ XTAPI XTSTATUS MmAllocateHardwareMemory(IN PFN_NUMBER PageCount, IN BOOLEAN Aligned, - OUT PULONG_PTR Buffer); + OUT PPHYSICAL_ADDRESS Buffer); XTAPI XTSTATUS diff --git a/xtoskrnl/mm/hlpool.c b/xtoskrnl/mm/hlpool.c index 904f111..67263e4 100644 --- a/xtoskrnl/mm/hlpool.c +++ b/xtoskrnl/mm/hlpool.c @@ -29,7 +29,7 @@ XTAPI XTSTATUS MmAllocateHardwareMemory(IN PFN_NUMBER PageCount, IN BOOLEAN Aligned, - OUT PULONG_PTR Buffer) + OUT PPHYSICAL_ADDRESS Buffer) { PLOADER_MEMORY_DESCRIPTOR Descriptor, ExtraDescriptor, HardwareDescriptor; PFN_NUMBER Alignment, MaxPage; @@ -37,7 +37,7 @@ MmAllocateHardwareMemory(IN PFN_NUMBER PageCount, PLIST_ENTRY ListEntry; /* Assume failure */ - *Buffer = 0; + (*Buffer).QuadPart = 0; /* Calculate maximum page address */ MaxPage = MM_MAXIMUM_PHYSICAL_ADDRESS >> MM_PAGE_SHIFT; @@ -135,7 +135,7 @@ MmAllocateHardwareMemory(IN PFN_NUMBER PageCount, } /* Return physical address */ - *Buffer = PhysicalAddress; + (*Buffer).QuadPart = PhysicalAddress; return STATUS_SUCCESS; }