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_PACKETLayout 成员。

要求

要求
最低 KMDF 版本 1.29
最低 UMDF 版本 2.33
标头 packet.h