WINDOWS KMDF PCI驱动程序: - 用于将数据写入MemoryMapped虚拟地址的API

时间:2017-08-24 01:12:17

标签: windows driver pci kmdf

我的任务是为Windows编写基于KMDF的PCI驱动程序。基本上,目标是将数据写入FGPGA板上的RAM(电路板尚未存在)。 FPGA上的PCI接口将允许数据直接读取和写入FPGA RAM。

这个想法是必要的内存映射信息将存储在BAR0寄存器中。内存描述符类型为CmResourceTypeMemory。第一步是读取BAR0寄存器信息并创建存储器映射。

使用另一块板,我写了一个执行上述操作的基本驱动程序。

然而,一旦我有了内存地址(Virtual),我就会想要从那个内存中读取和写入。我注意到Windows有用于读写PORTS和REGISTER的API。有没有相当于写入和读取虚拟地址的各种数据的东西: - I.E.将数据缓冲区复制到虚拟地址。直接复制似乎是一个选项,但我怀疑可能有一个API来执行此操作。

我查看了各种github PCI示例,但是他们倾向于使用寄存器和端口读写。

1 个答案:

答案 0 :(得分:0)

使用READ_REGISTER_BUFFER_xxx和WRITE_REGISTER_BUFFER_xxx例程。请参阅MSDN文档中的HAL Library Routines部分。