Комментарии 11
Можно придумать открытый способ идентификации устройств, выдать всем устройствам его поддерживабщим одинаковые VID+PID на шине USB, и сделать свою собственную шину, где проблема с драйверами будет решена.
Хорошая идея.
Свою собственную шину, разумеется, делать не надо. Достаточно только сделать драйвер, который ОС будет запускать для данной пары VID+PID. Этот драйвер запрашивал бы по стандартизированному для данной схемы протоколу более подробную информацию об устройстве (например, 128-битный UUID) и, в зависимости от результата, подгружал уже драйвер конкретного устройства.
Свою собственную шину, разумеется, делать не надо. Достаточно только сделать драйвер, который ОС будет запускать для данной пары VID+PID. Этот драйвер запрашивал бы по стандартизированному для данной схемы протоколу более подробную информацию об устройстве (например, 128-битный UUID) и, в зависимости от результата, подгружал уже драйвер конкретного устройства.
По идее, механизм подргузки нужного конкретного драйвера для устройства в зависимости от полученного UUID с точки зрения ОС и есть «шина».
Под словом «шина» обычно имеется в виду физический интерфейс с заданными протоколами обмена. То, что механизм подгрузки одного драйвера другим в некоторых ОС называется «шиной» — это специфика архитектуры и терминологии конкретной ОС.
Хотя с некоторой натяжкой и можно сказать, что шина USB, дополненная протоколом UUID, является уже другой шиной, но все же это вводит в заблуждение. Мы же все-таки ведем речь о сугубо программном решении, которое не изменяет стандартные протоколы обмена USB, а максимум — добавляет класс устройств, аналогично другим USB-классам (HID и т.д.)
Хотя с некоторой натяжкой и можно сказать, что шина USB, дополненная протоколом UUID, является уже другой шиной, но все же это вводит в заблуждение. Мы же все-таки ведем речь о сугубо программном решении, которое не изменяет стандартные протоколы обмена USB, а максимум — добавляет класс устройств, аналогично другим USB-классам (HID и т.д.)
Для своих устройств можно ещё по Serial Number делать идентификацию. Или по строке производителя или продукта.
А если нужно драйвер подписать цифровой подписью, то обращайтесь.
reactos.org/wiki/Driver_Signing
reactos.org/wiki/Driver_Signing
Кликабельный линк для ленвых.
https://reactos.org/wiki/Driver_Signing
https://reactos.org/wiki/Driver_Signing
Микрочип, например, может дать сублицензию на vid&pid www.microchip.com/usblicensing/Default.aspx на нужды девелоперов или до 10 тысяч экземпляров бесплатно ;)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Бесплатные пары VID PID для открытых проектов