zzy918
驱动牛犊
驱动牛犊
  • 注册日期2001-04-26
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1485回复:2

关于PACKET问题

楼主#
更多 发布于:2002-04-17 23:10
在DDK文档中,对于包的描述是这样的。
?一个包描述符包含一个为微端口NIC和协议驱动程序提供的私有区域,一系列与包有关的、由相互合作的微端口和协议驱动程序定义含义的标志量,这包括包的物理页的长度,包的总长,和一个指向第一个缓存描述符的指针,而这个描述符映射了包中的第一个缓存。
?一组缓存描述符,一个缓存描述符描述了每个缓存虚地址的起始位置,缓存区在页中的偏移量(字节,通过虚地址给出),缓存中字节的总数和指向下一个缓存描述符的指针(如果有的话)。
?虚拟范围,可以多于一页,它组成了由缓存描述符所描述的缓存。这些虚拟页映射到物理内存。

但是对于NDIS_PACKET的定义是这样的。
typedef struct _NDIS_PACKET {
    NDIS_PACKET_PRIVATE  Private;
    union {
        struct {
             UCHAR       MiniportReserved[2*sizeof(PVOID)];
             UCHAR       WrapperReserved[2*sizeof(PVOID)];
        };
        struct {
             UCHAR       MiniportReservedEx[3*sizeof(PVOID)];
             UCHAR       WrapperReservedEx[sizeof(PVOID)];
        };
        struct {
             UCHAR       MacReserved[4*sizeof(PVOID)];
        };
    };
    ULONG_PTR            Reserved[2];
    UCHAR                ProtocolReserved[1];
} NDIS_PACKET, *PNDIS_PACKET, **PPNDIS_PACKET;

这两者之间好象不太一致,这是怎么回事?请高手指点

最新喜欢:

zackaryzackar...
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-18 12:37
其他的信息在Private指针所指的区域(NDIS_PACKET_PRIVATE)。其结构在ndis.h中,看了这个结构你所有的疑虑全部解决了.祝你好运!
zzy918
驱动牛犊
驱动牛犊
  • 注册日期2001-04-26
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-24 23:07
我的指点,我已经找到了。
游客

返回顶部