А вот что делать с остальными функциями, такими как MPInitialize, MPQueryInformation, MPSetInformation и др. из минипорта и PtOpenAdapterComplete, PtCloseAdapterComplete, PtSendComplete и др. из протокола? Нужно ли их вообще прописывать в структурах MChars и PChars в DriverEntry? Или можно заместо них указать просто NULL? Или они все же нужны, а их можно просто скопировать из примера в DDK passthru?
За основу бери passthru из DDK.
Как лучше сохранять пакеты в файл? Непосредственно в самом драйвере функцией ZwWriteFile или передавать сохраняемую информацию в программу, чтобы уже она сохраняла?
Непосредственно писать в файл во время отправки/приема пакета не получится,если есть возможность передавай пакеты в юзерлендскую программу.
Поищи инфу тут:
www.ndis.comwww.pcausa.comwww.ntkernel.comDDK Documentation
Использование MS Windows Driver Model
Программирование драйверов и систем безопасности. Учебное пособие
Руткиты. Внедрение в ядро