address space layout

Alexandre Julliard julliard at
Fri Sep 28 08:46:57 CDT 2007

Tijl Coosemans <tijl at> writes:

> It appears that the only solution is to locate wine somewhere after
> 0x80000000 instead of at 0x7bf00000 and to allow mmap to allocate
> memory there. Then the data segment size limit can be set to 256Mb or
> something instead of 32Mb. The problem is then that builtin dlls are
> mmapped (by the runtime linker) well beyond 0x80000000. Now I'm
> thinking, would it be possible to load dummy dlls somewhere in the
> first 2Gb of address space? Through which API calls can a program
> determine a dll is above 0x80000000 by the way?

It can be any address located in the dll; normally it's the module
handle, but it can also be functions or variables. Also there are copy
protection tools that check that the dll code is really inside the
module, so you can't create a dummy dll and put the real code
somewhere else.

Alexandre Julliard
julliard at

More information about the wine-devel mailing list