Example #1
0
        public bool GetSegmentData(ulong addr, out SegmentData data)
        {
            InitDelegate(ref _getSegmentData, VTable->GetHeapSegmentData);
            int hr = _getSegmentData(Self, addr, out data);

            return(SUCCEEDED(hr));
        }
Example #2
0
        public bool GetSegmentData(ulong addr, out SegmentData data)
        {
            InitDelegate(ref _getSegmentData, VTable->GetHeapSegmentData);
            int hr = _getSegmentData(Self, addr, out data);

            if (hr == 0 && IntPtr.Size == 4)
            {
                data = new SegmentData(ref data);
            }
            return(SUCCEEDED(hr));
        }
Example #3
0
        internal SegmentData(ref SegmentData data)
        {
            this = data;

            // Sign extension issues
            if (IntPtr.Size == 4)
            {
                FixupPointer(ref Address);
                FixupPointer(ref Allocated);
                FixupPointer(ref Committed);
                FixupPointer(ref Reserved);
                FixupPointer(ref Used);
                FixupPointer(ref Mem);
                FixupPointer(ref Next);
                FixupPointer(ref Heap);
                FixupPointer(ref HighAllocMark);
                FixupPointer(ref BackgroundAllocated);
            }
        }