2013-03-31 2 views
0

Я пытался написать тестовый мост между двумя сетевыми адаптерами, используя пример прототипа NDIS, данный в WDK для Win 7. До сих пор только что был создан драйвер и прототип. Теперь мне было интересно, как просить? Есть ли способ связать только пару адаптеров за один раз?Прообраз образца NDIS и мост ethernet

+0

@ Jeffrey-Tippet Любая идея? –

ответ

0

Протокол NDIS автоматически привязывается к всем поддерживающим адаптерам. Таким образом, вам не нужно делать дополнительную работу, чтобы NDISPROT связывался с двумя сетевыми сетевыми адаптерами Ethernet.

После того, как вы создали драйвер, все, что вам нужно сделать, это:

  1. Установите драйвер (используйте INetCfgClassSetup::Install, как показано в образце BindView, или для случайного эксперимента, то свойства GUI NIC имеет Добавить ..., которая позволяет устанавливать протоколы с графическим интерфейсом).
  2. Запустите службу водителя (используйте StartService API, или для случайных экспериментов, net start ndisprot будет делать).

Всё. NDIS будет вызывать обработчик протокола ProtocolBindAdpaterEx вашего протокола для каждого сетевого сетевого адаптера в системе. Этот обратный вызов имеет имя NdisprotBindAdapter в образце.

Используйте !ndiskd.protocol, чтобы убедиться, что ваш протокол теперь связан с несколькими мини-портами.

+0

Спасибо Джеффри, могу я привязать только к выбранным адаптерам? –

+0

также, это правильный способ сделать мост ethernet или использовать минипорт или фильтр? Вы знаете какой-либо пример драйвера Ethernet-моста в NDIS6.x? –

+0

Для привязки к выбранным адаптерам: в usermode используйте INetCfgBindingPath :: Enable (FALSE), чтобы отключить привязки к определенным адаптерам. В kernelmode: в обработчике ProtocolBindAdapterEx просто выберите, чтобы не вызывать NdisOpenAdapterEx, если вы не хотите связывать. –