コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
 public VirtualQueryExResponse(int result, WindowsAPI.MemoryAPI.MEMORY_BASIC_INFORMATION mbi)
 {
     this.Result = result;
     this.MemoryBasicInformation = mbi;
 }