Example #1
0
        protected override IEnumerable <(IntPtr, IntPtr)> MapMemoryAreas()
        {
            var size       = IntPtr.Zero;
            var info       = new LibSystem.vm_region_basic_info_64();
            var infoCount  = (uint)(Marshal.SizeOf <LibSystem.vm_region_basic_info_64>() / sizeof(int));
            var objectName = 0u;
            var address    = IntPtr.Zero;

            while (LibSystem.vm_region_64(LibSystem.TaskSelf, ref address, ref size, LibSystem.VM_REGION_BASIC_INFO_64, ref info, ref infoCount, ref objectName) == LibSystem.KERN_SUCCESS)
            {
                var start = new IntPtr(address.ToInt64());
                var end   = new IntPtr(address.ToInt64() + size.ToInt64());
                address = end;
                yield return(start, end);
            }
        }
Example #2
0
        protected override IEnumerable <(nint, nint)> MapMemoryAreas()
        {
            var  info       = new LibSystem.vm_region_basic_info_64();
            var  infoCount  = (uint)(Marshal.SizeOf <LibSystem.vm_region_basic_info_64>() / sizeof(int));
            var  objectName = 0u;
            nint address    = 0;
            nint size       = 0;

            while (LibSystem.vm_region_64(LibSystem.TaskSelf, ref address, ref size, LibSystem.VM_REGION_BASIC_INFO_64, ref info, ref infoCount, ref objectName) == LibSystem.KERN_SUCCESS)
            {
                var start = address;
                var end   = address + size;
                address = end;
                yield return(start, end);
            }
        }