public override VirtualQueryExResponse Process() { WindowsAPI.MemoryAPI.MEMORY_BASIC_INFORMATION mbi = new WindowsAPI.MemoryAPI.MEMORY_BASIC_INFORMATION(); int ret = WindowsAPI.MemoryAPI.VirtualQueryEx(Handle, (IntPtr)Address, out mbi, (uint)Marshal.SizeOf(mbi)); return(new VirtualQueryExResponse(ret, mbi)); }
public override VirtualQueryExFullResponse Process() { var regions = new List <WindowsAPI.MemoryAPI.MEMORY_BASIC_INFORMATION>(); long currentAddress = 0; int ret = 0; while (true) { WindowsAPI.MemoryAPI.MEMORY_BASIC_INFORMATION mbi = new WindowsAPI.MemoryAPI.MEMORY_BASIC_INFORMATION(); ret = WindowsAPI.MemoryAPI.VirtualQueryEx(Handle, (IntPtr)currentAddress, out mbi, (uint)Marshal.SizeOf(mbi)); if (ret == 0) { break; } currentAddress += (long)mbi.RegionSize; regions.Add(mbi); } return(new VirtualQueryExFullResponse(regions)); }
public VirtualQueryExResponse(int result, WindowsAPI.MemoryAPI.MEMORY_BASIC_INFORMATION mbi) { this.Result = result; this.MemoryBasicInformation = mbi; }