阅读:1486回复:2
关于PACKET问题
在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; 这两者之间好象不太一致,这是怎么回事?请高手指点 |
|
最新喜欢:![]() |
沙发#
发布于:2002-04-18 12:37
其他的信息在Private指针所指的区域(NDIS_PACKET_PRIVATE)。其结构在ndis.h中,看了这个结构你所有的疑虑全部解决了.祝你好运!
|
|
板凳#
发布于:2002-04-24 23:07
我的指点,我已经找到了。
|
|