Имеется: собственный NDIS протокол, принимающий определенные пакеты. Вопрос: как добиться того, чтобы другие NDIS протоколы не обрабатывали эти пакеты? (в первую очередь протокол стандартного драйвера TCP/IP) 1 целевые пакеты - обычные TCP/IP (обязательно) 2 использование NDIS IM неприемлемо 3 хукать стандартный драйвер TCPIP - не очень красивое решение
Перечитай мой ответ - другого в Windows нет. Цепочка приёма пакета достаточно проста: hardware -> ndis miniport -> [ndisIM -> ndisIM] -> tcp/ip (ndis protocol) P.S. в Vista есть NDIS filters (намного лучше API), но там ты не сможешь контролировать NDIS bindings. Зато сможешь просто "сожрать" пакет и передать своей проге через iocontrol/read/write.
Понятно, что на верхнем уровне переусложнять систему самоубийственно. Но - в каком порядке протоколы вызываются для обработки пакета? - может ли один протокол модифицировать данные до того, как они прийдут в другой?
помогите с NDIS драйвером, не получается слинковать, 10 ошибок выдает: ndis.obj: error LNK2019: unresolved external symbol _imp_NdisOpenAdapter@8 referensed in function _DriverEntry@8 ...
В sources добавь: TARGETLIBS=$(DDK_LIB_PATH)\ndis.lib C_DEFINES=$(C_DEFINES) -DNDIS_MINIPORT_DRIVER -DNDIS_WDM=1 C_DEFINES=$(C_DEFINES) -DNDIS51_MINIPORT=1 C_DEFINES=$(C_DEFINES) -DNDIS51=1 ...если ты по 5.1 спеку кодишь.
Разбираю пример passthu из DDK, вот только установить его не получается может я что-то не так делаю... устанавливал с помошью instdrv