Any way to allocate physical memory above 4 GB on Vista x64?

I have a Vista x64 machine with 6 GB of RAM, and I am trying to verify that the device driver is working correctly when running DMA with physical addresses above 4 GB.

I found the AllocationPreference registry key , which should "force distribution of allocations from higher addresses to lower addresses", but the page does not make clear whether this affects physical addresses or only virtual addresses. Based on the behavior of my code, I suspect that this only affects virtual addresses.

I also came across the nolowmem boot option, which should load the “operating system, device drivers, and all applications to addresses above the 4 GB border,” but it seems to be only for 32-bit versions of Windows. I tried turning it on on Vista x64, but the machine did not boot. I just installed this machine a couple of days ago, so it did not have service packs; I am currently installing them to make sure this is due to a Windows error.

Is there a way to get Windows to allocate virtual addresses above 4 GB supported by physical addresses above 4 GB?

+3
source share

Source: https://habr.com/ru/post/1713103/


All Articles