Как использовать драйвер протокола NDIS? - PullRequest
1 голос
/ 05 августа 2011

Я пишу драйвер протокола NDIS. Я могу зарегистрировать свой протокол с NdisRegisterProtocol.

Как приложение обычно получает доступ к этому драйверу? Есть ли способ использовать Windows-сокеты или мне нужно предоставить интерфейс StreamDriver?

Функция сокета имеет третий параметр 'protocol', который обычно что-то вроде IPPROTO_UDP. Могу ли я выбрать драйвер протокола, используя этот параметр?

1 Ответ

2 голосов
/ 06 августа 2011

Драйверы протокола не отображаются автоматически в Windows Sockets API (и это хорошо, так как дает вам большую архитектурную гибкость).Но вы можете заставить его работать, добавив пару дополнительных частей.

  1. Вам нужно реализовать какой-то канал для связи с вашим драйвером.Я не слишком знаком с Windows CE, но StreamDriver звучит как правдоподобный способ сделать это.

  2. Вам нужно открыть этот канал через Winsock.Напишите библиотеку «Transport Service Provider», которая принимает запросы от Winsock и преобразует их в то, что может понять ваш драйвер протокола.

Так TCPIP (драйвер протокола) отображается как IPPROTO_UDPтип протокола Winsock) - ОС включает в себя TSP для TCP, UDP и Raw IP.

Документация для CE - здесь , но документация NT Также стоит прочитать раздел обзора.

...