whzhang
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2215回复:4

lookahead是packet的哪个部分,怎么使用?

楼主#
更多 发布于:2001-08-27 14:36
我的网卡驱动程序从硬件控制器上读出了一个frame,现在要向上层驱动indicate,要用到lookahead buffer,不知道要做那些变换,如何使用lookahead buffer,要自己再创建一个packet吗?

最新喜欢:

linwnlinwn zackaryzackar...
bigston
驱动牛犊
驱动牛犊
  • 注册日期2001-08-09
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-27 15:25
是以太网的以太头,共14个字节。
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2001-08-27 21:23
你最好不要用lookaheadbuffer,最好是把所有的数据包收到了
之后用介质无关indicate packet。
这种情况需要构造packet。但是不用写transferdata函数了。
不再回忆从前,我已经生活在幸福当中。
whzhang
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-08-28 08:39
有了斑竹和热心朋友的关怀,我的心里热乎乎的,你们有重燃了我完成这个驱动的信心。
但是,又有一个新的问题:
怎么创建一个packet,我从ddk中看到的是NdisAllocatePacket函数,是否使用这个函数呢?那就要用到NdisAllocatePacketPool函数了,又没有现成的例子可以参考呢?
另外,我们的网卡是不支持dma的,只能使用pio的形式,而且是单包收发数据的。
如果能得到您们的帮助,我的感激真如滔滔江水。。。。
hustfyb
驱动牛犊
驱动牛犊
  • 注册日期2001-05-28
  • 最后登录2002-01-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-08-28 09:33
一个函数可是搞不定的
1。
   NdisAllocatePacketPool(&Status,
        &Adapter->ReceivePacketPool,
        Dongle_PACKET_NUMBER,
        16);//分配PacketPool
 .
2.   NdisAllocateBufferPool(&Status,
        &Adapter->ReceiveBufferPool,
        Dongle_PACKET_NUMBER);////分配BufferPool

3.分配Packet
     for (i=0;i<Dongle_PACKET_NUMBER;i++){
NdisAllocatePacket(&Status,
&Adapter->Packets,
Adapter->ReceivePacketPool);
NDIS_SET_PACKET_HEADER_SIZE(Adapter->Packets,Dongle_HEADER_SIZE);
NdisAllocateBuffer(&Status,
&Adapter->ReceiveBuffer,
Adapter->ReceiveBufferPool,
(PVOID)Adapter->RevDataBuffer,
Dongle_PACKET_SIZE);
NdisChainBufferAtFront(Adapter->Packets,Adapter->ReceiveBuffer);
     }
大致的工作就是如上,你先要搞清楚NDIS下的Packet结构,DDk上有
再见了白云 永别了黄鹤
游客

返回顶部