I need to share memory between userspace and kernelspace. The memory is allocated in userspace and in the kernel I want to build a memory descriptor list with physical addresses to initialize a DMA controller (that resides in FPGA).
I'm using a Zynq (ARM+FPGA) with WEC2013 on it.
Microsoft gives 2 methods, the "IOCTL method" and the "Shared Memory Object" method but I can't use either of them:
- IOCTL: because the method parameter is ignored by Windows Embedded Compact so I can't use METHOD_xxx_DIRECT. MSDN on IOCTL
- Shared Memory Object: memory is already allocated by the user and therefore I can't create a named memory object (with CreateFileMapping). Copying the data would take too much time.
Is there another way to do this? Or can I get the MDL in userspace?