阅读:1878回复:2
ProtocolReserved里面的东西
包描述符中的ProtocolReserved里面到底有些什么东西,可以在这里修改上行下行包的协议类型吗?比如IP、ARP、ICMP或者别的什么协议类型。如何改写和定义ProtocolReserved里面的东西呢?
|
|
|
沙发#
发布于:2001-08-30 23:10
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; |
|
|
板凳#
发布于:2001-08-30 23:54
自问自答也未尝不是一件好事:
以上结构体定义的是NDIS包描述符,而ProtocolReservced是包描述符结构体的一部分,对于以太网而言,它的大小不应该小于16个字节,既然是ProtocolReservced,那么自然归协议驱动所用,协议驱动可以把这个域用作保存其分配的第一个buffer的指针。然后协议驱动还要把它分配的这个包描述符通过调用NdisTransferData发送出去 . |
|
|