2

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

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

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

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

还有另一种方法可以做到这一点吗?或者我可以在用户空间中获得 MDL 吗?

4

0 回答 0