· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.NETWORKS —› miniport драйвер, NDIS & ARP запросы

Посл.отвђт Сообщенiе


Дата: Июл 14, 2004 17:03:55

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

Имеет место быть следующая проблема:

1. Пусть сетевая карта установлена на роутере, который разделяет две подсети.
2. Пусть с одного из компьютеров одной подсети я пытаюсь осуществить ping несуществующего хоста другой подсети.
3. По приходу пакета ping на сетевую карту роутера, подключенную к первой подсети, драйвер выкачивает пакет из карты по DMA и уведомляет о его существовании NDIS.
4. В связи с отсутствием точки назначения пакета в ARP-таблице роутера, роутер начинает рассылать во вторую подсеть ARP-запросы.
5. NDIS _БЛОКИРУЕТ_ память, выделенную под пакет и возвращает драйверу статус PENDING.
6. Теперь драйвер _ОБЯЗАН_ завершить обработку данного пакета по завершении обработки пакета драйверами верхнего уровня (ARP) по уведомлению NDIS в функции ReturnPacket()
7. Средняя скорость завершения обработки ПО роутера запроса на несуществующий хост - 2 секунды. Средняя частота прихода пакетов от ping - один в секунду. Память, выделенная под пакет заблокирована NDIS и освобождена до завершения обработки пакета быть не может.

ВОПРОС: что необходимо сделать, чтобы
избежать переполнения буфера памяти, выделяемого в драйвере под буфера и дескрипторы пакетов.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.043