NDIS IM

Home Forums Discussions Support Portal NDIS IM

This topic contains 3 replies, has 2 voices, and was last updated by  Vadim Smirnov 10 years, 6 months ago.

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #5102

    Dmitry_177
    Participant

    Почитав интернете про написание NDIS драйвера, у меня возникло несколько вопросов Нужно все входящие/исходящие пакеты сохранять в файл.. В какой-то статье в интернете разобраны функции MPSend минипорта и PtReceive протокола, в которых я как понимаю можно скопировать пакет для работы с ним.. А вот что делать с остальными функциями, такими как MPInitialize, MPQueryInformation, MPSetInformation и др. из минипорта и PtOpenAdapterComplete, PtCloseAdapterComplete, PtSendComplete и др. из протокола? Нужно ли их вообще прописывать в структурах MChars и PChars в DriverEntry? Или можно заместо них указать просто NULL? Или они все же нужны, а их можно просто скопировать из примера в DDK passthru?

    Нужно все входящие/исходящие пакеты сохранять в файл..

    Как лучше сохранять пакеты в файл? Непосредственно в самом драйвере функцией ZwWriteFile или передавать сохраняемую информацию в программу, чтобы уже она сохраняла?

    #6257

    Vadim Smirnov
    Moderator

    Обязательность или опционально сть обработчиков в NDIS_PROTOCOL_CHARACTERISTICS и NDIS_MINIPORT_CHARACTERISTICS описана в DDK, большинство из них нужны.

    Сохранять в файл можно и из ядра (лучше из отдельного потока работающего на IRQL_PASSIVE_LEVEL, так как receive всегда приходит на IRQL_DISPATCH_LEVEL).

    #6258

    Dmitry_177
    Participant

    Обязательность или опционально сть обработчиков в NDIS_PROTOCOL_CHARACTERISTICS и NDIS_MINIPORT_CHARACTERISTICS описана в DDK, большинство из них нужны.

    Подскажи пожалуйста в каком разделе в DDK это можно почитать?

    лучше из отдельного потока работающего на IRQL_PASSIVE_LEVEL

    т.е. лучше создавать свой поток в драйвере при сохранении? какойнибудь там ZwCreateThread функцией?

    #6259

    Vadim Smirnov
    Moderator

    Подскажи пожалуйста в каком разделе в DDK это можно почитать?

    Описание NdisRegisterProtocol например…

    т.е. лучше создавать свой поток в драйвере при сохранении? какойнибудь там ZwCreateThread функцией?

    PsCreateSystemThread

Viewing 4 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic.