NET_PACKET_LAYOUT结构 (packet.h)
NET_PACKET_LAYOUT结构描述NET_PACKET中每个协议标头的开头。
语法
typedef struct _NET_PACKET_LAYOUT {
UINT16 Layer2HeaderLength : 7;
UINT16 Layer3HeaderLength : 9;
UINT8 Layer4HeaderLength : 8;
UINT8 Layer2Type : 4;
UINT8 Layer3Type : 4;
UINT8 Layer4Type : 4;
UINT8 Reserved0 : 4;
} NET_PACKET_LAYOUT;
成员
Layer2HeaderLength
第 2 层标头的长度(以字节为单位),如果第 2 层的长度未知,则为零。
Layer3HeaderLength
第 3 层标头的长度(以字节为单位),如果第 3 层的长度未知,则为零。
Layer4HeaderLength
第 4 层标头的长度;如果第 4 层的长度未知,则为零。
Layer2Type
一个枚举,它指定 来自NET_PACKET_LAYER2_TYPE的标志。
typedef enum _NET_PACKET_LAYER2_TYPE
{
NetPacketLayer2TypeUnspecified,
NetPacketLayer2TypeNull,
NetPacketLayer2TypeEthernet,
} NET_PACKET_LAYER2_TYPE;
Layer3Type
一个枚举,指定 来自NET_PACKET_LAYER3_TYPE的标志。
typedef enum _NET_PACKET_LAYER3_TYPE
{
NetPacketLayer3TypeUnspecified,
NetPacketLayer3TypeIPv4UnspecifiedOptions,
NetPacketLayer3TypeIPv4WithOptions,
NetPacketLayer3TypeIPv4NoOptions,
NetPacketLayer3TypeIPv6UnspecifiedExtensions,
NetPacketLayer3TypeIPv6WithExtensions,
NetPacketLayer3TypeIPv6NoExtensions,
} NET_PACKET_LAYER3_TYPE;
Layer4Type
一个枚举,指定NET_PACKET_LAYER4_TYPE中的标志。
typedef enum _NET_PACKET_LAYER4_TYPE
{
NetPacketLayer4TypeUnspecified,
NetPacketLayer4TypeTcp,
NetPacketLayer4TypeUdp,
NetPacketLayer4TypeIPFragment,
NetPacketLayer4TypeIPNotFragment,
} NET_PACKET_LAYER4_TYPE;
Reserved0
预留给系统使用。
注解
有关使用此结构的详细信息,请参阅 NET_PACKET 的 Layout 成员。
要求
要求 | 值 |
---|---|
最低 KMDF 版本 | 1.29 |
最低 UMDF 版本 | 2.33 |
标头 | packet.h |