public void FreeMemoryRegion(MemoryRegion region, APIProxy.FreeType freeType)
 {
     if (freeType == APIProxy.FreeType.Release)
     {
         APIProxy.VirtualFreeEx(handle, region.start, 0, freeType);
     }
     else
     {
         APIProxy.VirtualFreeEx(handle, region.start, region.lenght, freeType);
     }
 }
예제 #2
0
 public static extern bool VirtualFreeEx(IntPtr hProcess, IntPtr lpAddress, int dwSize, APIProxy.FreeType dwFreeType);
예제 #3
0
 public static void VirtualFreeEx(Handle processHandle, Address targetAddress, int size, APIProxy.FreeType freeType)
 {
     if (WINAPI.VirtualFreeEx(processHandle.GetHandleAsPointer(), targetAddress.GetAsPointer(), size, freeType) == false)
     {
         throw new VirtualFreeException("Freeing  Bytes at " + targetAddress + " failed with errorcode " + Marshal.GetLastWin32Error());
     }
 }