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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Intermediate driver - как выцепить IP адрес адаптера?  (Прочитано 4851 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Kife
Помогающий

by
Offline Offline

« : 17-09-2005 12:46 » 

как выцепить IP адрес адаптера? собственно, после изучения DDK нарыл вот что:
OID_GEN_NETWORK_LAYER_ADDRESSES

на сколькоя понял, этот OID как раз и должен информировать мой минипорт о установке/изменении IP адреса адапретера, к которому он привязан. Но проблема в том, что в
NDIS_STATUS MPQueryInformation этот OID не приходит Жаль Не знаю, что и делать, бьюсь уже целый день..

Может кто-нибудь знает, в чем дело, или как выцепить IP адрес адаптера другим способом?
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
Kife
Помогающий

by
Offline Offline

« Ответ #1 : 17-09-2005 15:00 » 

Вот так всегда.. пока сам себе не поможешь, никто тебе не поможет. Наткнулся на письмо в PCAUSA и ответ на него (может комуто будет интересно). На вопрос "как определить IP адрес низлежащего адаптера" они отвечают : НИКАК! Улыбаюсь)) Но есть пару трюков (я о них думал, но меня такие варианты смущали...) Привожу текст ответа на письмо:

If you are asking if NDIS provides a method for you to ask the lower-level NDIS MAC driver for its IP address, then the answer is:
 
      ABSOLUTELY NOT!!!
 
With the exception of optional NDIS Task Offload services, NDIS MAC drivers are protocol-independent. They just send and receive the MAC frames that come along. Only higher-level transport drivers understand the MAC frame payload.
 
There are several ways to determine the IP address of a particular TCP/IP "interface". For example, n user-mode you can use the "IP Helper" API to find the IP address. You can use an IOCTL call from a user-mode application or service to tell your NDIS IM driver what the IP address list is for each interface.
 
In kernel mode you can use TDI to fetch the same information.
 
However, the simplest method that you can use to find the IP address of the lower-level NDIS MAC driver from within in your NDIS IM driver is to simply parse IP packets that are being sent. Each IP packet that is being sent includes the source MAC and source IP address. Extract this information and keep it around in your per-adapter structure. Be sure to accomodate multiple IP addresses for a single interface.
 
Good luck,
 
Thomas F. Divine
 
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines