Posted: Sun Jan 13, 2008 4:37 pm
This is how I parse the entries. No risk of overflow
Code: Select all
PMemoryMap = ^TMemoryMap;
TMemoryMap = packed record
size: cardinal;
base: qword;
length: qword;
mtype: cardinal;
end;
...
var a: PMemoryMap;
a := MbInfo.MemoryMap;
for i := 0 to (MbInfo.MemoryMapSize div SizeOf(TMemoryMap))-1 do
begin
writeln(a^.Base,'->',a^.length);
inc(a);
end;