http://bugs.winehq.org/show_bug.cgi?id=34095
--- Comment #6 from alexei.svitkine@gmail.com 2013-07-21 11:00:42 CDT --- I tried out my proposal of reserving the region in question during the startup sequence and it seems to work.
I surrounded the code in get_display_driver() in dlls/gdi32/driver.c with the following two functions:
LPVOID mem = VirtualAlloc((LPVOID)0x50000000, 1024 * 1024, MEM_RESERVE, PAGE_NOACCESS);
/* get_display_driver() code... */
VirtualFree(mem, 0, MEM_RELEASE);
This seems to fix the issue.