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