Я пытаюсь изменить драйвер Ethernet с помощью инструментов WDK, представленных в Visual Studio 2012.
Образцы, представленные в WDK, включают, среди прочего, «адаптер мини-порта» и «облегченный фильтр NDIS». Я все еще в самом начале написания драйверов, и поэтому мне сложно ориентироваться в коде.
Я смог установить адаптер мини-порта после его создания в Visual Studio 2012 [Отображается как «Виртуальный адаптер мини-порта Microsoft» в моем списке сетевых адаптеров.] Я также могу назначить ему IP-адрес и маску подсети. [Я узнал что это не подключается ни к какому физическому устройству на моем ПК].
Я также настроил программное обеспечение «Отладка», чтобы проверять сообщения драйвера от моего адаптера. [Я использовал операторы «DbgPrint» в коде, а затем построил его.] Но сообщения отладки печатаются повторно.
1- Почему сообщения печатаются снова и снова? Сообщения взяты из файла 'datapath.c' программы и из функции 'MPSendNetBufferLists'. ['Net Buffer' определяет данные, отправленные или полученные по сети.]
2- Я настраиваю Wireshark для захвата данных на адаптере, и он показывает, что от него исходят запросы от ARP, HTTP, SSDP, MDNS и т. Д. Я не могу понять, что на самом деле говорит с адаптером? и как я могу остановить его от разговора?
Я могу использовать «ping», чтобы увидеть, есть ли соединение с IP-адресом, который я назначил адаптеру, и он отвечает успешно, сообщая, что все пакеты были отправлены и потери пакетов не было.
Моя цель - отправлять и получать пакеты данных через IP-адрес на этот адаптер Ethernet. т.е. я хочу, чтобы приложение подключалось к IP-адресу, назначенному адаптеру, и разговаривало с ним.
3- Могу ли я сделать это с образцами, представленными в WDK?
Любые другие предложения или советы приветствуются.
PS- я не смог использовать отладчик Windows, встроенный в Visual Studio 2012. Я использовал 2 ПК и смог подключиться и установить драйвер на «целевой» ПК, но ничего не мог сделать с точками останова и т. д. Код и Программа просто ничего не делала после установки драйвера на «целевой» ПК. Любые предложения по этому поводу? Я думал, что смогу также выполнять пошаговую отладку драйверов. [Я знаю, что ошибаюсь].
Спасибо, Адитья.