Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сетевой драйвер WINPCAP, компиляция исходников 
:(
    Опции темы
Hiehachi
Дата 17.4.2006, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 27.12.2005
Где: Ukraine->Odess a

Репутация: нет
Всего: нет



Здраствуйте.
Очень хочу пообщатся по теме исходников на WINPCAP. 
Задача состоит состыковать ETHERNET устройство с компом, запустить так сказать обмен данными.
Нарыл кучу информации, в основном стоящая инфа только по теме WINPCAP. Есть много инфы по NDIS, в основном в DDK, но там полные дрова -  недружелюбный подход к изложению спецификации. Поэтому один выход WINPCAP.
И тут началось: 
 WINPCAP поставляется в исходниках, можно скачать около пяти разных версий архивов. (В архивах присутствуют папка исходников драйвера packet.sys, папка исходника packed.dll и папка с исходниками wpcap.dll) - компилированых этих файлов в архиве нет(1).
Компилировал исходники: драйвера packet.sys через build из DDK2000 и packet.dll через VisualC5(с импортом функции проблем нет). Функция PacketGetAdapterNames нормально завершается и возвращает список адаптеров, я их получаю.
Проблемы возникли с запуском следующей функции PacketOpenAdapter (которая должна запускать драйвер).
Точнее в исходниках драйвера packet.sys. Драйвер должен был зарегистрировать символьные метки, по которым сначало можно было бы с ним работать через CreateFile. Этой функции регистрации(IoCreateSymbolicLink) нет. Точнее этот код закоментирован.

При просмотре кода, по которым формируется символьные метки в драйвере и *.dll. Я могу сказать что алгоритмы там разные. И при просмотре и компиляции этих архивов с исходниками одинаковый результат. Драйвер прописывается и стартует, но когда надо с ним работать - проблема - *.dll обращается к драйверу по символьной метке, а драйвер ее не зарегистрировал. Написать подобный алгоритм в драйвере я не берусь, плохо ореинтируюсь в API KERNEL MODE функциях.
 Вот и вся проблема.
Есть еще один выход, попробовать поработать с packet.sys не через packet.dll, а через wpcap.dll (wpcap.dll в свою очередь тоже использует packet.dll). Но тогда возможны двойные неприятности, а может быть и нет.

Вообще я только еще изучаю этот пакет. Хочется сделать, что-нибудь полезное, типа обмена даными по ETHERNET на MAC уровне. WINSOKET2 ( RAW) - это нормально, но для задачи не подходит.

Если кто-нибудь может поделится соображениями по поводу ETHERNET на MAC(NIC) уровне , может подскажете лучший путь. Или посоветуйте рабочие исходники или уже скомпилирование файлы packet.dll или packet.sys.

 
PM MAIL WWW ICQ   Вверх
Hiehachi
Дата 3.5.2006, 03:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 27.12.2005
Где: Ukraine->Odess a

Репутация: нет
Всего: нет



Все работает! Скомпилировал версию WINPCAP 3.0. 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0639 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.