структура 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.

Требования

Требование Значение
Минимальная версия KMDF 1.29
Верхняя часть packet.h