我对网卡的理解是,在接收数据时,该数据通过网卡驱动程序DMA进入主存。然后内核将此内存复制到用户空间并发送任何必要的消息。
我的问题是,在Windows中,是否可以设置DMA写入的地址?我的目标是消除类似于NVidia的GPUDirect管道工作方式的额外内存副本。
答案 0 :(得分:0)
是的,这是可能的。我相信这被称为“公共缓冲DMA”。它用于智能网络适配器。利用这一点需要编写自己的网络驱动程序。这是一些关于它的微软文档。 http://msdn.microsoft.com/en-us/library/windows/hardware/ff565359%28v=vs.85%29.aspx