id,summary,reporter,owner,description,type,status,priority,component,version,resolution,keywords,cc,guest,host
10128,VirtualBox x64 fails to start a VM with top-down memory allocation and DLL loading is enabled,alex1n,,"I was testing some x64 application for 64-bit specific issues and for this I enabled the Top-Down memory allocation and DLL loading in Windows to ensure that the pointer and values are located in the upper portion of memory. I noticed that with these settings VirtualBox fails to start a virtual machine with the following error:
Failed to open a session for the virtual machine WinXP.
The loader resolved an external symbol to an address to big for the image format. (VERR_SYMBOL_VALUE_TOO_BIG).
Result Code: E_FAIL (0x80004005)
Component: Console
Interface: IConsole {1968b7d3-e3bf-4ceb-99e0-cb7c913317bb}
It looks like there is a problem in VB that mistreats large pointers (either by truncating the pointer value, or using it as a signed value somewhere).
In order to enable these two settings in Windows, go to registry editor and change or add the ""AllocationPreference"" value of ""HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"" key to DWORD:0x00100000 as well as add bit 0x2000000 to ""GlobalFlag"" value of ""HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager"" (this will normally be set to 0x20000400 in this case).
Then after reboot try starting a virtual machine.
You can read about these flags here:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb613473(v=vs.85).aspx (at the end of the page)
http://technet.microsoft.com/en-us/library/cc779664(WS.10).aspx (search for FLG_LDR_TOP_DOWN)
",defect,closed,major,other,VirtualBox 4.1.8,fixed,,,Windows,Windows