Я работаю над NAT-подобным программным обеспечением на платформе Windows, изменяя оригинальный промежуточный пример в Windows WDK.
Вот несколько сетевых адаптеров на моей машине, и я хочу проанализировать каждый полученный пакет, а затем решить, на какой адаптер переслать пакет.
Возникает проблема: я не знаю, как указать адаптер для отправки при вызове функции NdisSend.
Как показано ниже, в NdisSend есть аргумент BindingHandle, но в моем понимании он должен обозначать все адаптеры в passthru (может и не правильно 🙂
NdisSend (&Состояние, pAdapt-> BindingHandle, MyPacket);
Итак, как указать адаптер, как эта форма: {62E9DB05-88D3-479D-A194-22D6A591DB96} при вызове NdisSend?
Очень спасибо ..
Я думаю, что ключ pAdapt->BindingHandle
, так pAdapt
является указателем на структуру, которая содержит всю специфичную для адаптера информацию, включая BindingHandle
, Таким образом, каждый адаптер имеет свой BindingHandle
и вот как вы контролируете, какой адаптер получает пакет.
Также вы можете захотеть выяснить, можете ли вы использовать WFP вместо NDIS для своего драйвера.
Других решений пока нет …