零拷贝接收功能

时间:2013-07-02 07:40:03

标签: c++ windows winapi zero-copy

我正在尝试实现零拷贝机制,即与TransmitFile() API相反的功能。

但我不知道如何在内核中注册缓冲区。以下是我要实现零拷贝的详细信息:

  1. 我们将在客户端缓冲区中从服务器接收大量数据,我也怀疑天气数据是否会进入套接字缓冲区(客户端)或首先它会进入网卡缓冲区,请清除此疑问也

  2. 现在来自套接字缓冲区我希望将数据直接复制到内核缓冲区,然后在光盘中存档,而无需进行读写系统调用,即无需切换上下文。

  3. 数据必须仅在内核空间内直接移动到内核缓冲区。

  4. 是否有任何API或某种方法可以实现这一目标?还有其他建议吗?

    套接字在TCP / IP连接上。

1 个答案:

答案 0 :(得分:1)

不幸的是,没有任何API用于接收。但是你可以试试ZwWrite()。