Здравствуйте, Maxim S. Shatskih, Вы писали:
MSS>Еще нюанс. После NdisSend пакет нам не принадлежит. Надо не забыть занулить поле в классе, чтобы деструктор по выходу из блока не решил уничтожить не-принадлежащий нам пакет. В итоге сложности вырастают, они всего лишь заталкиваются внутрь враппера.
CMiniport::send(CPacket &packet)
{
// ...
packet.detach();
// ...
}
Написал один раз, закомментировал — и можно забыть.
MSS>Еще нюанс. Написание враппера вокруг обоих структур, а потом еще и "кода по делу" — дольше будет.
Если отправка пакета понадобилась тебе один-единственный раз в жизни, то да.
Если же хотя бы два раза, то проще написать обёртку, чем кажый раз колотить на plain C всё работу по созданию/уничтожению пакета.
Ещё один плюс: в моём случае можно посадить за работу программиста без глубоких знаний NDIS.
Он и стОить будет дешевле.
А пользуясь этими классами он и работу сделает, и много дров не наломает.
MSS>Еще нюанс. В отладчике страшно будет
Это смотря в каком отладчике

SotfICE с C++ дружит.