Создание драйвера для преобразования запросов HID-USB в пакеты HCI - PullRequest
0 голосов
/ 12 июля 2020

Это может показаться немного странным, но я довольно ограничен оборудованием, которое у меня есть.

У меня есть устройство, состоящее из TI CC2640R2, подключенного к UART Silicon Labs CP2110 к мосту USB-HID. Основная идея устройства - отправлять команды Bluetooth HCI с микросхемы TI на CP2110, который преобразует данные UART в запись HID, которая может быть прочитана кодом приложения на хост-машине, и наоборот. Я бы хотел подключить это устройство к предопределенному стеку HCI в Windows 10, чтобы рабочий стол мог использовать устройство в качестве стандартной конечной точки Bluetooth.

Обычно это не было бы проблема, поскольку микросхема USB устройства перечислит его как устройство Bluetooth, что приведет к тому, что диспетчер PnP в Windows подключит его к стеку Bluetooth системы. Однако устройство HID усложняет ситуацию. Bluetooth знал бы, что делать. Мне пришлось бы сделать прямо противоположное, если пойти другим путем - взять команду HCI, упаковать ее в соответствующую запись HID и отправить запись на целевое устройство.

Мне удалось получить исходный код код для примера KMDF драйвера последовательной шины HCI Bluetooth, но я не знаю, как правильно получить целевое устройство из драйвера класса HID, или если мне нужно что-то сделать с мини-драйвером HID, чтобы соединить два стеки драйверов.

Можно ли получить указатель на HID-устройство из режима ядра, и если да, то как мне go это сделать?

Если нет, и HID минидрайвер необходим для перехвата и ретрансляции команд, какой был бы наилучший метод объединения драйвера HCI и минидрайвера HID, чтобы они могли четко взаимодействовать друг с другом?

...