Поделиться через


структура NET_PACKET (packet.h)

Представляет один сетевой пакет.

Синтаксис

typedef struct _NET_PACKET {
  UINT32            FragmentIndex;
  UINT16            FragmentCount;
  NET_PACKET_LAYOUT Layout;
  UINT8             Ignore : 1;
  UINT8             Scratch : 1;
  UINT8             Reserved1 : 6;
} NET_PACKET;

Члены

FragmentIndex

Индекс в кольце фрагмента первого NET_FRAGMENT структуры в полезных данных этого пакета.

FragmentCount

Количество NET_FRAGMENT структур, принадлежащих этому пакету.

Layout

Структура NET_PACKET_LAYOUT .

Для очередей передачи, если стек узлов включил разгрузку задачи, которая использует заголовок протокола, указывает смещение только для чтения для каждого поля протокола. Например, если включена разгрузка контрольной суммы TCP, этот элемент указывает смещение заголовка TCP. В противном случае этот элемент пуст.

Для очередей получения, если стек узлов включил разгрузку задачи, использующий заголовок протокола, установите флаги Layer2Type, Layer3Type и Layer4Type . При отсутствии разгрузки задач этот элемент пуст.

Ignore

Для очередей получения клиент задает это поле, чтобы предотвратить указание пакета на узел. Например, если оборудование обнаружило ошибку DMA при записи байтов в буфер данных для фрагментов этого пакета, клиент может задать для этого поля удаление частичного пакета.

Для очередей передачи это поле доступно только для чтения. Если задано значение , это означает, что клиент не должен передавать пакет.

Scratch

Значение битового поля, которое клиент может использовать для любой цели. При повторном использовании NET_PACKET это значение сбрасывается до нуля.

Reserved1

Зарезервировано. Клиентские драйверы не должны считывать или записывать это значение.

Комментарии

Каждая NET_PACKET структура представляет один сетевой кадр и содержит базовые метаданные, применимые ко всем пакетам, например макет обрамления. NET_PACKET содержит по крайней мере один NET_FRAGMENT , описывающий расположение в системной памяти, где находятся данные пакета.

Структура NET_PACKET может быть элементом в структуре NET_RING .

Требования

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