Win64 patch 1/5 (configure)
Ge van Geldorp
ge at gse.nl
Wed Jul 5 03:46:56 CDT 2006
> From: Alexandre Julliard [mailto:julliard at winehq.org]
>
> The appropriate address needs to be determined from the
> standard Win64 address space layout. I don't have a Win64 box
> to check what this looks like though.
Ok, I need some guidance on this. This is the usermode address space layout
when running a simple Win64 app:
0000000000010000 - 0000000000011000 commit private
0000000000020000 - 0000000000021000 commit private
0000000000030000 - 000000000012C000 reserve private
000000000012C000 - 000000000012E000 commit private
000000000012E000 - 0000000000130000 commit private stack
0000000000130000 - 0000000000135000 commit mapped
0000000000140000 - 0000000000141000 commit mapped
0000000000150000 - 0000000000156000 commit private process heap
0000000000250000 - 0000000000254000 commit mapped
0000000000254000 - 0000000000260000 reserve mapped
0000000000260000 - 0000000000276000 commit mapped
0000000000280000 - 00000000002B4000 commit mapped
00000000002C0000 - 0000000000301000 commit mapped
0000000000310000 - 0000000000316000 commit mapped
0000000000320000 - 0000000000330000 commit private
0000000000330000 - 0000000000333000 commit mapped
0000000000400000 - 000000000048E000 commit image application
0000000000490000 - 00000000004B1000 commit private
00000000004B1000 - 0000000000590000 reserve private
0000000078D40000 - 0000000078EB2000 commit image kernel32.dll
0000000078EC0000 - 0000000078ff9000 commit image ntdll.dll
000000007EFE0000 - 000000007EFE9000 commit mapped
000000007EFE9000 - 000000007F0E0000 reserve mapped
000000007F0E0000 - 000000007FFE0000 reserve private
000000007FFE0000 - 000000007FFE1000 commit private shared user page
000000007FFE1000 - 000000007FFF0000 reserve private
000007FFFFFB0000 - 000007FFFFFD4000 commit mapped
000007FFFFFDD000 - 000007FFFFFDF000 commit private TEB
000007FFFFFDF000 - 000007FFFFFE0000 commit private PEB
000007FFFFFE0000 - 000007FFFFFF0000 reserve private
Some of the commit/mapped areas contain NLS files. As far as I can tell, the
TEB and PEB were moved from just-below-2GB to just-below-7TB, while the
shared user page and system DLLs like kernel32 and ntdll were kept at
just-below-2GB.
I think 0x7bf00400 as relocation address for the Wine loader would work
fine. If you'd rather see a different load address or want me to investigate
something else please let me know.
Ge van Geldorp.
More information about the wine-devel
mailing list