Bulat_Ziganshin  Цитата: я не могу динамически подгружать dll, которые я не использую напрямую. а напрямую я использую только wininet (ну и то, что она лично за собой тянет). всё остальное автоматом загружается виндами перед выполнением программы, afaik
  пришла мысля, может сделать dll-ку, которая будет загружаться "раньше всех" и резервировать адресное пространство, но раньше всех загружается сам 
exe  а у него есть такой параметр - 
Size of Heap Reserve  http://msdn.microsoft.com/ru-ru/library/f90ybzkh.aspx  выставил в FreeArc.exe вместо 00100000h (1МБ) 70100000h (1793МБ), зарезервировалось, dll-ки подгрузились по другим адресам, то что нужно было 
 
  а дальше уже удерживать непрерывный кусок наверно можно и "вручную".   
 70100000h (1793МБ) - какой объем резервировать лучше, это вопрос   
 при поиске максимума (1950МБ - 0x79E00000) видел такое сообщение:  
Цитата: FreeArc.exe - Недопустимое перемещение системной DLL 
 Системная библиотека user32.dll перемещена в памяти. Работа приложения будет нарушена. Перемещение произошло из-за того, что библиотека Dynamically Allocated Memory заняла область адресов, зарезервированную для системных DLL Windows. Обратитесь к поставщику за новой версией библиотеки. 
  проблема не только в размере резерва, но и то что другие dll-ки тоже перемещаются 
 посмотрел какие dll-ки успевают загрузится, получил dll-ку с меньшим Image Base: 
 COMDLG32.DLL - 0x76380000 (1891.5МБ) 
 поставил heap 1891МБ 0x76300000 (для надёжности) FreeArc.exe запустился   
 осталось выяснить - зарезервированный heap кусок разрезервировать возможно?   
 PS: не программер, мысли вслух.