diff options
Diffstat (limited to 'ChocolArm64/Memory/AMemoryWin32.cs')
| -rw-r--r-- | ChocolArm64/Memory/AMemoryWin32.cs | 27 |
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 |
