Показаны сообщения с ярлыком ndis. Показать все сообщения
Показаны сообщения с ярлыком ndis. Показать все сообщения

пятница, 12 сентября 2008 г.

Мультиплатформенная установка NDIS драйверов из MSI (Wix)

Установка NDIS драйверов это вообще отдельная песня. Microsoft предлагает нам использовать для этого INetCfg API и приводит примеры его использование в WDK, но, к сожалению, ни сервис менеджер, ни инсталяторы, ни даже Driver Install Framework не умеют устанавливать NDIS драйвера. Правда, если погуглить, то можно найти информацию о том, что версия difx 1.x это делать умела, и в 2.х сохранилась недокументированная возможность, но она ведь недокументирована, а в нашем деле это жирный минус.

Итак что мы имеем:
1. Недокументированная возможность Difx.
2. Samples из DDK, использующие INetCfg (snetcfg и bindview).
3. Поделки использующие INetCfg наподобие моей.

В общем весь фокус этой несложной поделки в одалживании кода работы с INetCfg (да не шарахнет молнией меня Microsoft, все права сохранены) небольшого редактирования под свои нужды (наверное таки шарахнет) и оформления в виде dllки для MSI.

В итоге очень удобно получилось ибо теперь:
1. Можно устанавливать и удалять NDIS IM и NDIS LWF из MSI.
2. Делать это и под x86 и под x64 из под одного и того же MSIника.

P.S. Кстати прикрутил туда возможность установки и обычных драйверов. Знаю что не комильфо, но очень уж понравилась мне мысль использовать один и тот же MSI для разных платформ.

Пример использования это счастья (ставим passthru) здесь.