dflovely
驱动牛犊
驱动牛犊
  • 注册日期2001-05-10
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分-16分
  • 威望100点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2944回复:7

有哪位大侠赐教一下NDIS-PACKET内部结构?

楼主#
更多 发布于:2001-06-26 13:51
希望能详细一些。还有,是不是上层协议的包会被封装成NDIS-PACKET,如果是的话,例如ip包的数据内容会在哪里?

最新喜欢:

fsbfsb
VC在手,天下我有
wangbo
驱动牛犊
驱动牛犊
  • 注册日期2001-06-11
  • 最后登录2002-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-06-26 15:36
还有,NIC miniport 从网卡那里收到的数据又都包括那些成分呢?
把以太网的帧,变成IP包是在哪里完成的呢??

我是菜鸟,请大侠指教!
神仙?妖怪? 谢谢!
yebear
驱动牛犊
驱动牛犊
  • 注册日期2001-05-18
  • 最后登录2013-04-05
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望51点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-07-04 14:27
网卡写到内存的数据格式基本上就是以太网帧,
可能还有一些辅助信息。
内存数据就像这样:(辅助信息0)DA SA LEN DATA(可能还有
PAD0)(辅助信息1)DA SA LEN DATA(可能还有PAD1)(辅助
信息2)DA SA LEN DATA(可能还有PAD2)(辅助信息3)DA SA
 LEN DATA(可能还有PAD1)(辅助信息3)DA SA LEN DATA(可
能还有PAD4)。。。

将以太网帧组装成IP包是Miniport的任务,
Miniport分配好空间,然后捡取上述数据
的必要成分将其填入就完成PACKET的组装。
这些都是我看DDK后想的,可能是对的:)
[yebear 编辑于 2001-07-04 14:33]
iori
驱动牛犊
驱动牛犊
  • 注册日期2001-03-26
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-07-06 16:14
分组的结构
    NDIS Packet由协议驱动分配,填好数据,往下层的ndis 驱动传递,这样,数据就能传向网络。一些最底层的网卡驱动自己分配packet来存放接收到的数据,然后再把它传往对这些packet感兴趣的高层驱动。有时候,一个协议驱动分配好packet,把它传递给网卡驱动,请求网卡驱动把接收到的数据拷贝到提供的packet里。NDIS 提供分配和操作构成packet的基础的函数。
                     Buffers                    
--------------------- ┌> ---------------------  
|Packe Descriptor   | |  | Buffer Descriptor  |
| Flags;            | |  | StartVirtualAddress|---->虚拟地址
| PhysicalPageCount | |  | ByteOffset;        |
| TotalLength;      | |  | ByteCount;         |
| FirstBuffer;------|-ㄠ | PhysicalPages []   |
|   ..........      |    | Next p ---------   |
|-------------------     |                |   |
                         ----------------------
                                          |
                                          
:)
iori
驱动牛犊
驱动牛犊
  • 注册日期2001-03-26
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-07-06 16:17
哎。。这个破论坛,我辛辛苦苦画的图就没了。
要看图,在win2000 ddk里。你在索引里输入Packet Structure就可以了
[iori 编辑于 2001-07-06 16:21]
:)
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
5楼#
发布于:2001-07-06 16:34
我已经加上了帖图功能,下次就可以直接把图片帖上来了。

[znsoft 编辑于 2001-07-06 19:24]
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
maomao
驱动牛犊
驱动牛犊
  • 注册日期2001-06-22
  • 最后登录2002-12-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-07-06 19:06
   IP包就在bufferdescripter 里,你可以用ndisquerybuffersafe去得到它的虚拟地址,从第一个bufferdescripter到最后一个,把一个packetdecripter中的bufferdescripter中的内容和起来就是一个完整的包,下来的事情就是按照你的包的媒体头格式来解析数据包了。
[color=red]我只想好好呼吸一下...[/color]
dflovely
驱动牛犊
驱动牛犊
  • 注册日期2001-05-10
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分-16分
  • 威望100点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2001-07-09 13:15
谢谢大家的帮助,我想我有些懂了。
VC在手,天下我有
游客

返回顶部