aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64/Memory/AMemoryWin32.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ChocolArm64/Memory/AMemoryWin32.cs')
-rw-r--r--ChocolArm64/Memory/AMemoryWin32.cs27
1 files changed, 23 insertions, 4 deletions
diff --git a/ChocolArm64/Memory/AMemoryWin32.cs b/ChocolArm64/Memory/AMemoryWin32.cs
index d097dc87..387ca32c 100644
--- a/ChocolArm64/Memory/AMemoryWin32.cs
+++ b/ChocolArm64/Memory/AMemoryWin32.cs
@@ -49,7 +49,7 @@ namespace ChocolArm64.Memory
VirtualFree(Address, IntPtr.Zero, MEM_RELEASE);
}
- public unsafe static long IsRegionModified(IntPtr Address, IntPtr Size, bool Reset)
+ public unsafe static int GetPageSize(IntPtr Address, IntPtr Size)
{
IntPtr[] Addresses = new IntPtr[1];
@@ -57,17 +57,36 @@ namespace ChocolArm64.Memory
long Granularity;
- int Flags = Reset ? WRITE_WATCH_FLAG_RESET : 0;
+ GetWriteWatch(
+ 0,
+ Address,
+ Size,
+ Addresses,
+ &Count,
+ &Granularity);
+
+ return (int)Granularity;
+ }
+
+ public unsafe static void IsRegionModified(
+ IntPtr Address,
+ IntPtr Size,
+ IntPtr[] Addresses,
+ out int AddrCount)
+ {
+ long Count = Addresses.Length;
+
+ long Granularity;
GetWriteWatch(
- Flags,
+ WRITE_WATCH_FLAG_RESET,
Address,
Size,
Addresses,
&Count,
&Granularity);
- return Count != 0 ? Granularity : 0;
+ AddrCount = (int)Count;
}
}
} \ No newline at end of file