Доброго всем времени суток.
С принципом работы IM драйвера passthru вроде разобрался. Но вот только не пойму, в какой момент уже можно преобразовывать
данные(!) пакета MyPacket (насколько я понял они содержаться в цепочке буфферов) в функциях MpSend, MpSendPakets, PtReceive, PtReceivePacket?
А именно:
Там происходит следующее (для PtReceive)
MyPacket->Private.Head = Packet->Private.Head;
MyPacket->Private.Tail = Packet->Private.Tail;
далее идёт присвоение флагов пакетов и т.д.
Насколько я понял криптографию (например) нужно применять именно после
MyPacket->Private.Head = Packet->Private.Head;
MyPacket->Private.Tail = Packet->Private.Tail;
Знающие люди, поправьте пожалуйста если я что не так понимаю.
И еще вопросик: нужно ли при этом пересчитывать контрольные суммы?
Заранее всем благоларен.
Здравствуйте.
Данные можно преобразовывать в тот момент, когда они получены
,т.е, как Вы правильно отметили, в функциях MpSend, MpSendPakets, PtReceive, PtReceivePacket. Однако я не советовал-бы работать с представлением в форме NDIS_PACKET, а перегнал-бы весь пакет в буфер и там уже его криптовал-раскриптовывал.
Как это делать описанно в
https://forum.shelek.ru/index.php/topic,7748.msg132341.html#msg132341После изменения пакета (в буфере) ему надо пересчитать checksum.
Ваша тема значительно совпадает с темой "NDIS InterMediate Driver - Обсуждение", поэтому в скором времени я ее присоеденю туда.
С уважением,
Акс.