The comment in vxd.c is old and so it Win32s. The important part is in dlls/ntdll/virtual.c - there is there an ADDRESS_SPACE_LIMIT of 3GB. There is a comment that this is a Windows limit, but AFAIK it is not present on x64 Windows, so probably it can be changed for LARGE_ADDRESS_AWARE programs, to allow them to use all the address space. Maybe we should query the host OS for it? You could try to compile Wine with this limit set to 0 and check if this help with your program.