KungFu
驱动大牛
驱动大牛
  • 注册日期2001-09-27
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望24点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
阅读:1548回复:3

什么是packet descriptors?

楼主#
更多 发布于:2002-02-27 08:32
看程序的时候看到这么一句“allocates and initializes a block of storage for a pool of packet descriptors”对其中的packet descriptors不甚了解,请指教。
我不写驱动好多年
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2002-02-27 09:21
看程序的时候看到这么一句“allocates and initializes a block of storage for a pool of packet descriptors”对其中的packet descriptors不甚了解,请指教。


请看ndis.h

struct NDIS_PACKET 的定义
不再回忆从前,我已经生活在幸福当中。
KungFu
驱动大牛
驱动大牛
  • 注册日期2001-09-27
  • 最后登录2008-04-08
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望24点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-02-27 09:56
I got the definition of _NDIS_PACKRT,but can not get what I want.

以下是ndis.h中关于packet的定义:
//
// packet definition
//
typedef struct _NDIS_PACKET
{
NDIS_PACKET_PRIVATE Private;

union
{
struct // For Connection-less miniports
{
UCHAR MiniportReserved[2*sizeof(PVOID)];
UCHAR WrapperReserved[2*sizeof(PVOID)];
};

struct
{
//
// For de-serialized miniports. And by implication conn-oriented miniports.
// This is for the send-path only. Packets indicated will use WrapperReserved
// instead of WrapperReservedEx
//
UCHAR MiniportReservedEx[3*sizeof(PVOID)];
UCHAR WrapperReservedEx[sizeof(PVOID)];
};

struct
{
UCHAR MacReserved[4*sizeof(PVOID)];
};
};

ULONG_PTR Reserved[2]; // For compatibility with Win95
UCHAR ProtocolReserved[1];

} NDIS_PACKET, *PNDIS_PACKET, **PPNDIS_PACKET;



[编辑 -  2/27/02 作者: KungFu]
我不写驱动好多年
speng
驱动牛犊
驱动牛犊
  • 注册日期2002-02-25
  • 最后登录2002-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-02-27 12:34
包描述符的关键成员是private。该成员使用一个由buffer描述符(实际上是内存描述符)构成的一个buffer链表,这个链表组成了一个大的非连续的缓冲区。private实际上是在这个大缓冲区中存储真正的数据包的。
游客

返回顶部