Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: NDIS ProtocolSendComplete - не вызывается для сетевой карты  (Прочитано 3875 раз)
0 Пользователей и 1 Гость смотрят эту тему.
HotRod
Гость
« : 13-07-2004 20:07 » new

Добрый день, All

Ситуация:Написал мини-firewall под win98. Основа - это VxD-драйвер, который перехватывает сервисы NDIS на прием/передачу.

Сама проблема:При работе через модем - все ОК. При получении интернет-трафика через сетевую карту (Realtek RTL 8139/810X PCI fast ethernet) функция NdisSend отрабатывает, но ProtocolSendComplete не вызывается вообще! В результате имею утечку ресурсов, выделяемых в NdisSend и освобождаемых в ProtocolSendComplete, и глохнущий на корню трафик.

Пока писал, пришла идея: если dial-up использует асинхронную работу по NdisSend (а именно, асинхронное ее завершение по ProtocolSendComplete), то может ли быть работа сетевой карты синхронной (и ProtocolSendComplete уже не требуется)?
Дело осложняется тем, что сеть эта у Заказчика, а он от меня далече...

Или проблема в драйверах сетевой карты? Нашел в Гугл-групсах такой обмен мнениями:

Цитата
I wrote driver for encrypting data sending throught network. But some
problem occured with NE2000 compatible driver:
NDISCompleteSend and some other services (NDISIndicateReceive &
NDISCompleteTransferData) from this driver cann't be intercepted by me.
Why?Не понялНе понялНе понялНе понялНе понялНе понял
Timur

Take a look in NDIS.H. In some cases NdisCompleteSend is defined to be a
MACRO that really just jumps directly to the protocol's
SendCompleteHandler.
Whether you can successfully hook the calls you are interested in probably
depends upon whether the driver was compiled as a "miniport" or a "full
NIC" driver. That's out of your control.
Regards,
--
Thomas F. Divine

Hello, Thomas !
I think you are right.
I tested my driver under 3Com net card (elink3 driver) & Direct Cable
Connection - it is works properly.
I.e. its drivers are "miniport".
But problem with NE2000 compatible driver shows it is "full NIC" driver.
Can you explain a rigth way to solve this problem ? Please.
Timur
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines