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


Структуры сетевых данных

Сетевые данные состоят из пакетов данных, которые отправляются или принимаются по сети. NDIS предоставляет структуры данных для описания и упорядочения таких данных. Основные сетевые структуры данных для NDIS 6.0 и более поздних версий:

На следующем рисунке показаны связи между этими структурами.

Схема, иллюстрирующая структуры сетевых данных NDIS 6.0, включая NET_BUFFER, NET_BUFFER_LIST и NET_BUFFER_LIST_CONTEXT.

В NDIS 6.0 и более поздних версиях NET_BUFFER является основным стандартным блоком для упаковки сетевых данных. Каждая структура NET_BUFFER имеет цепочку MDL. Многомерные списки сопоставляют адреса буферов данных с пространством данных, указанными NET_BUFFER структурами. Это сопоставление данных идентично цепям MDL, которые NDIS 5. Драйверы x и более ранних версий используются в структуре NDIS_PACKET . NDIS предоставляет функции для управления цепочкой MDL.

К структуре NET_BUFFER_LIST можно присоединить несколько NET_BUFFER структур. Структуры NET_BUFFER организованы как отдельно связанный список с завершением NULL. Только драйвер, создающий структуру NET_BUFFER_LIST или NDIS, должен напрямую изменять связанный список для вставки и удаления NET_BUFFER структур.

NET_BUFFER структуры LIST содержат сведения, описывающие все NET_BUFFER структуры, присоединенные к списку. Если драйверу требуется дополнительное пространство для контекстных сведений, драйвер может хранить такие сведения в NET_BUFFER_LIST_CONTEXT структурах. NDIS предоставляет функции для выделения, освобождения и доступа к данным в NET_BUFFER_LIST_CONTEXT структурах.

Для формирования списка NET_BUFFER_LIST структур можно присоединить несколько NET_BUFFER_LIST структур. Структуры NET_BUFFER_LIST организованы как отдельно связанный список со значением NULL. Драйверы могут напрямую изменять связанный список для вставки и удаления NET_BUFFER_LIST структур.

NET_BUFFER

Структура NET_BUFFER

список NET_BUFFER

Структура NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

Структура NET_BUFFER_LIST_CONTEXT