emailxj
驱动牛犊
驱动牛犊
  • 注册日期2002-05-15
  • 最后登录2009-04-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1427回复:5

有关e100ebx例子的问题

楼主#
更多 发布于:2002-08-15 11:17
在win2k的ddk e100ebx 例子中, 有关dma操作方面;

在接收数据的流程中,代码中使用了NdisMAllocateSharedMemory()分配了供DMA操作的内存区域,并且这块内存已经与NDIS_BUFFER进行了“绑定”,我的问题是DMA这么和这块内存进行“绑定”?

我在其它的一些NIC驱动中看到把这块内存的物理地址传给了NIC中的某个寄成器,如此这样进行了所谓的绑定,还有什么NdisMUpdateSharedMemory()操作等? :mad:
sharc2002
驱动牛犊
驱动牛犊
  • 注册日期2002-04-07
  • 最后登录2013-05-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望32点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-15 12:41
你能把其他的nic driver 源程序发送给我一份吗?我正在学习编写nic driver, 也正在看ddk 例子,也想看看其它相关的例子,好对比学习。刚看到 initialize 部分。

e-mail: sharc2002@163.com
emailxj
驱动牛犊
驱动牛犊
  • 注册日期2002-05-15
  • 最后登录2009-04-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-15 12:47
好的,我也是刚学,共同探讨吧
sharc2002
驱动牛犊
驱动牛犊
  • 注册日期2002-04-07
  • 最后登录2013-05-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望32点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-19 19:05
“绑定”用的太深奥了吧,其实就是告诉dma 控制器其传输数据的目标或起始地址。
 至于NdisMUpdateSharedMemory(),我的理解,那是为了保证dma 写操作时,数据的传输的正确性(仅仅某些平台有效,和硬件是否支持有关)。
emailxj
驱动牛犊
驱动牛犊
  • 注册日期2002-05-15
  • 最后登录2009-04-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-19 19:34
he, he , 对不起,喜欢“起术语”, 让你误导了;

由于手头忙, 我没时间具体看下去,但我想,这里有可能遵从了win2k 的“DMA处理模型”(又起术语了):
      这个e100bx有可能是\"从属dma模型\"的例子;
      当然,使用DMA不必要一定要遵从win2k的“模型”框架,自己直接操作dma也可以;


      不知道对不对, 还要高手指点;

    
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
5楼#
发布于:2002-08-20 09:16
其实还是讲英文好懂,每个地方都一样,中文不一样,几乎每本书都不大一样,看了一头雾水。
游客

返回顶部