v77 suggested that I post this question here, instead of on sourceforge:
Is it possible for the imdisk driver to provide the disk wrapper around direct (fixed) physical memory starting at some address (say +16GB) and of some size, say 24GB (my use case) ? Since it is running as administrator,
perhaps with kernel mode rights, it should be able to directly access the unprotected memory address space? (i.e. sidestep the virtual space).
The user could be warned ("at your own risk") -
There are a set of circumstances, e.g. Windows Home Premium, which blocks off access to upper memory (I thought an OS was supposed to operate/enable system resources, not disable it), while still maintaining
it as addressable. The kernel controls, but doesn't allow userspace access to, upper memory. Normally one wouldn't want to do what I'm suggesting, due to the ability to clobber userspace/or other DMA access to memory, but Windows "bcdedit truncate" memory command should explicitly prevent all other programs from accessing a particular region. (actually, this would also help users with >192G of ram, since w7 64 doesn't allow access to that either)
Additional circumstances are also very powerful -- a hardware developer could make a pci-express ram disk or other block device, and by giving imdisk a fixed memory offset, use the driver as the frontend/disk wrapper for testing custom block device hardware as well.
For my particular end-user case, it would be an AMAZING feature if it works -- windows 7 upgrades are now disabled, and those that are availablecost more than an entirely new system, and I certainly don't want windows 10 -- the only option for new systems. w10 is running on another machine and broken half of my applications and randomly deletes my research.
Anyway, there's no reason (that I see) that direct address space imputation can't be used if the sata/memory driver is running in kernel mode. The user can be responsible for blocking addresses from the kernel general use.
Ideally I would love to start a ramdisk up in UEFI mode, or have the BIOS allocate it as a virtual block device. Then I could truly use the memory however I liked.
What do you think?