Почитав интернете про написание NDIS драйвера, у меня возникло несколько вопросов... Нужно все входящие/исходящие пакеты сохранять в файл.. В какой-то статье в интернете разобраны функции MPSend минипорта и PtReceive протокола, в которых я как понимаю можно скопировать пакет для работы с ним.. А вот что делать с остальными функциями, такими как MPInitialize, MPQueryInformation, MPSetInformation и др. из минипорта и PtOpenAdapterComplete, PtCloseAdapterComplete, PtSendComplete и др. из протокола? Нужно ли их вообще прописывать в структурах MChars и PChars в DriverEntry? Или можно заместо них указать просто NULL? Или они все же нужны, а их можно просто скопировать из примера в DDK passthru? Как лучше сохранять пакеты в файл? Непосредственно в самом драйвере функцией ZwWriteFile или передавать сохраняемую информацию в программу, чтобы уже она сохраняла?
Посмотри в стророну WinPCAP, он вроде умеет дампить пакеты сразу в файл. Еще нужен именно свой драйвер, возьми Passthru из DDK и переделай под свои нужды. Где сохранять файл: сохранять в кренел моде удобнее если тебе надо просто дамп пакетов делать непрерывно - тоесть просто драйвер дампит все что нипопадя. Если же надо дать юзеру возможность выбрать папку для сохранения, или выставить фильтры на траффик, то лучше сейвить в юзермоде.
П.С. Очень рекомендую почитать: Extending The Microsoft PassThru NDIS Intermediate Driver Part 1 Adding a DeviceIoControl Interface http://www.wd-3.com/archive/ExtendingPassthru.htm Extending The Microsoft PassThru NDIS Intermediate Driver--Part 2 Two IP Address Blocking NDIS IM Drivers http://www.wd-3.com/archive/ExtendingPassthru2.htm