Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: WPCAP Ethernet MAC(NIC)
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
картошка
Здраствуйте.
Очень хочу пообщатся по теме применения исходников WINPCAP.
Задача состоит состыковать ETHERNET устройство с компом, запустить так сказать обмен данными. Нарыл кучу информации, в основном стоящая инфа только по теме WINPCAP. Есть много инфы по NDIS, в основном в DDK, но там полные дрова - недружелюбный подход к изложению спецификации. Поэтому для меня один выход - WINPCAP.
Но тут началось:
WINPCAP поставляется в исходниках, можно скачать около пяти разных версий архивов. (В архивах присутствуют папка исходников драйвера packet.sys, папка исходника packed.dll и папка с исходниками wpcap.dll) - компилированых этих файлов в архиве нет.
Компилировал исходники: драйвера packet.sys через build из DDK2000 и packet.dll через VisualC5(с импортом функции проблем нет).

При прогоне тестовых примеров из документации возникли ситуации : Функция PacketGetAdapterNames нормально завершается и возвращает список адаптеров, я их получаю.
Проблемы возникли с запуском следующей функции PacketOpenAdapter (которая должна перезапускать(запускать) драйвер).Точнее в исходниках драйвера packet.sys. Драйвер должен был зарегистрировать символьные метки, по которым сначала можно было бы с ним работать через CreateFile. Этой функции регистрации(IoCreateSymbolicLink) в драйвере нет. Точнее этот код закоментирован.

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

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

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

Буду очень признателен.
картошка
Все работает! Скомпилировал версию WINPCAP 3.0.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.