学习httpdisk源码中的疑问,向大侠请教

xiaoxiao_8 2007-11-03 07:09:58
我在学习httpdisk源码中,把网络接收的数据先放到申请的内存中,然后通过RTlcopymemory到用户数据的内存中,
1、请问难道不能直接访问用户数据内存吗?
2、我想把它改成可以写的。当发送数据时,是不是一定要先RTlcopymemory用户数据到临时内存中,才能发送?
多谢了。
...全文
183 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiao_8 2007-11-07
  • 打赏
  • 举报
回复
以下是 httpdisk.c的部分源码:
while (dataLen < Length)
{
nRecv = recv(*Socket, buffer, BUFFER_SIZE, 0);
if (nRecv < 0)
{
close(*Socket);
*Socket = -1;
break;
}
if (nRecv < 1 || dataLen + nRecv > Length || nRecv > BUFFER_SIZE)
{
DbgPrint("HttpDisk: Invalid data length %u+%u\n", dataLen, nRecv);
close(*Socket);
*Socket = -1;
break;
}
RtlCopyMemory(
(PVOID)((PUCHAR) SystemBuffer + dataLen),
buffer,
nRecv
);
dataLen += nRecv;
}

我的意思是 能不能直接把 recv接收的数据放到 SystemBuffer中,不再使用 RtlCopyMemory这个函数了?
oushengfen 2007-11-06
  • 打赏
  • 举报
回复
可以直接访问内存啊,看你使用的是什么访问方式,直接访问内存要使用直接I/O方式。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧