Структуры сетевых данных
Сетевые данные состоят из пакетов данных, которые отправляются или принимаются по сети. NDIS предоставляет структуры данных для описания и упорядочения таких данных. Основные сетевые структуры данных для NDIS 6.0 и более поздних версий:
На следующем рисунке показаны связи между этими структурами.
В 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 структур.