Maybe a minimal example helps better understanding what my exact problem is

Code:
#include <windows.h>

int main()
{


  VirtualAlloc(
      (LPVOID)0x40000000, //reserve memory at a designated address 0x40000000
      0x10000000, //size of memory to reserve is 256MB
      MEM_RESERVE, //reserve the memory for myself, OS can't use it for anything else afterwards
      PAGE_EXECUTE_READWRITE //security flag, doesn't matter here
    );
}
The call to VirtualAlloc will fail if the memory range is already reserved for something else.
The biggest reason that this range is already reserved is dynamic loaded DLL modules. And I can't find a way to prevent the loader to load any DLL module to 0x40000000. (This address is just an example)