Доброго всем времени суток! Столкнулся с проблемой портирования драйвера с XP на Висту. Пишу Драйвер шифрования пакетов. Да вот только шифрование используется не тривиальное и периодически необходимо драйверам общаться друг с другом без посторонних пакетов. И вот проблема: в XP я использовал такой нехитрый механизм - проверял все входящие пакеты в PtReceive и PtReceivePacket, и при обнаружении своего сохранял пакет в памяти (меняя при этом Source Ethernet с Desteny Ethernet и Source IP c Desteny IP местами). После этого немного изменял данные, пересчитывал CHecksum и вызывал NdisSend(&Status, pAdapt->BindingHandle, MyPacket); Все просто и работало. Но на висте уперлось и не хочет пакеты отправлять! То есть по факту все функции вызываются и даже вызывается функция PtSendComplete в которую приходит мой пакет и я проверяю на то, что это мною созданный пакет и не надо вызывать NdisMSendComplete, а просто очистить память... Но ничего не отправляется! Подскажите, люди добрые, а то совсем голову сломал... Если подскажете более умный механизм ответа из драйвера, буду еще более благодарен!
Попробуйте использовать NDIS extension в WinDbg .Также не помешает посмотреть что выходит из NIC каким нибудь Network analyzer например Wireshark.