Опитвах се да напиша тестов мост между два Ethernet адаптера, като използвах примера за прото на NDIS, даден в WDK за Win 7. Засега току-що имах изграден драйвер и прототест. Сега се чудех как да процедирам? Има ли някакъв начин да се свържете само с няколко адаптера наведнъж?
NDIS прото образец и Ethernet мост
comment
@Jeffrey-Tippet Някаква идея?
- person Jimson Kannanthara James   schedule 01.04.2013
Отговори (1)
NDIS протокол автоматично се свързва с всички поддържани адаптери. Така че не е нужно да правите допълнителна работа, за да накарате NDISPROT да се обвърже през две Ethernet NIC.
След като създадете драйвера, всичко, което трябва да направите е:
- Инсталирайте драйвера (използвайте
INetCfgClassSetup::Install
, както е илюстрирано в примера за bindview; или за небрежно експериментиране GUI със свойствата на NIC има бутон Добавяне..., който ви позволява да инсталирате протоколи с GUI). - Стартирайте услугата на драйвера (използвайте
StartService
API; или за случайни експерименти,net start ndisprot
ще свърши работа).
Това е. NDIS ще извика манипулатора ProtocolBindAdpaterEx на вашия протокол за всеки Ethernet NIC в системата. Това обратно извикване е наречено NdisprotBindAdapter
в примера.
Използвайте !ndiskd.protocol
, за да проверите дали вашият протокол вече е обвързан с множество минипортове.
person
Jeffrey Tippet
schedule
02.04.2013
Благодаря, Джефри, мога ли да се свържа само с избрани адаптери?
- person Jimson Kannanthara James; 03.04.2013
също така, това ли е правилният начин да направя Ethernet мост или трябва да използвам минипорт или филтърен драйвер? Знаете ли за примерен драйвер за Ethernet мост в NDIS6.x?
- person Jimson Kannanthara James; 03.04.2013
За да се свържете с избрани адаптери: в потребителски режим използвайте INetCfgBindingPath::Enable(FALSE), за да деактивирате свързванията към определени адаптери. В kernelmode: във вашия манипулатор на ProtocolBindAdapterEx просто изберете да не извиквате NdisOpenAdapterEx, ако не искате да се свързвате.
- person Jeffrey Tippet; 04.04.2013
Windows се доставя с Ethernet мост, така че това е най-добрият пример за сравнение. Той е реализиран като MUX-IM драйвер, който е доста сложен за правилна работа. Предимството на MUX-IM спрямо обикновения протокол е, че мостовите адаптери се появяват като 1 унифициран мрежов интерфейс към операционната система. Ако е добре мостовите адаптери да се показват независимо в операционната система, тогава не се нуждаете от MUX-IM и е достатъчен протокол.
- person Jeffrey Tippet; 04.04.2013
няма проблем при показването на мостовите адаптери, които се появяват независимо от операционната система, но това, което сега съм объркан, е след като прочетох тази връзка tech-archive.net/Archive/Development/ Възможно ли е да се постигне същото чрез модифициране на passthru? Ако да, чудите се как?
- person Jimson Kannanthara James; 04.04.2013
Не използвайте passthru за това. Тъй като този отговор изисква повече място, отговорих тук: stackoverflow.com/questions/15792238/
- person Jeffrey Tippet; 05.04.2013