我对网卡的理解是,当接收到数据时,通过网卡驱动程序将数据DMA输入主存储器。然后,内核将这个内存复制到用户空间,并发送任何必要的消息。
我的问题是,在Windows中,是否可以设置DMA写入的地址?我的目标是消除额外的内存拷贝,类似于NVidia的GPUDirect管道的工作方式。
发布于 2014-07-22 18:44:52
是的,这是可能的。我相信这就是所谓的“普通缓冲DMA”。它用于智能网络适配器。利用这一点需要编写您自己的网络驱动程序。下面是一些微软的文档。http://msdn.microsoft.com/en-us/library/windows/hardware/ff565359%28v=vs.85%29.aspx
https://stackoverflow.com/questions/24894920
复制相似问题