Как сказал Мэтт, это действительно должен быть NDIS.
Обязательно уделите много времени разработке драйвера, я бы порекомендовал от 6 до 12 месяцев, чтобы перейти к стадии альфа-релиза. Имея дело с NDIS, я могу заверить вас, что это боль, как никто другой.
Если вы планируете выпустить свой продукт для широкой публики, вам нужно выложить несколько штук в Microsoft, чтобы получить одобренный драйвер (WHQL), в противном случае ваши пользователи получат несколько неприятных диалогов при установке ( софт "критически небезопасен" разнообразен). Процесс одобрения медленный и больше не доступен для Windows 2000, скорее всего, скоро выйдет для XP. 64-битное утверждение - отдельная оплата.
Вы заблокированы использованием C, но любая крошечная ошибка усиливается в виде синего экрана (например, нулевая ссылка или небольшое переполнение буфера). Вы не можете создавать потоки, ваш API на 100% отличается от обычного API пользовательского режима, и на самом деле попытка установить связь с пользовательским режимом означает работу с IRP-системой с покалыванием по кругу.
Сам NDIS перегружен плохим способом в стиле MFC. Вы ограничены подмножеством API ядра (что делает некоторые вещи очень сложными, например доступ к реестру). Невыполнение этого требования приводит к немедленной дисквалификации WHQL (нет, вы не получите свои деньги обратно!).
Каждая строка кода должна быть тщательно проверена, чтобы убедиться, что она работает правильно для уровня IRQL, на котором работает (в основном это определяет, может ли ваш код быть прерван другими процессами). Вызов функции API на неправильном уровне приводит к появлению синего экрана. Кроме того, создание структуры в стеке размером более 500 - 1000 байт приводит к переполнению стека (конечно, синий экран). Это само по себе может привести к забавным сеансам отладки, когда у вас есть стек вызовов длиной 15 строк с несколькими небольшими выделениями в каждой функции.
Несмотря на все это, и несмотря на то, что NDIS прошел 6 ревизий, это действительно стоит сделать, если вы хотите испытать. Награда - это программный продукт, который будет хорошо продаваться, потому что не многие другие смеют запутываться в подобных вещах. Одним из важных требований является знание ассемблера (для отладки). Чтение о работе ядра Windows также очень полезно (не только NDIS).