如何在用户空间和内核空间之间共享内存

时间:2015-11-12 16:05:21

标签: windows kernel embedded dma userspace

我需要在用户空间和内核空间之间共享内存。内存在用户空间中分配,在内核中我想构建一个带有物理地址的内存描述符列表来初始化DMA控制器(驻留在FPGA中)。

我正在使用带有WEC2013的Zynq(ARM + FPGA)。

Microsoft提供2 methods,“IOCTL方法”和“共享内存对象”方法但我无法使用其中任何一种方法:

  • IOCTL:因为Windows Embedded Compact忽略了方法参数,所以我不能使用METHOD_xxx_DIRECT。 MSDN on IOCTL
  • 共享内存对象:内存已由用户分配,因此我无法创建命名内存对象(使用CreateFileMapping)。复制数据需要花费太多时间。

还有其他办法吗?或者我可以在用户空间中获取MDL吗?

0 个答案:

没有答案