у меня есть устройство, которое коннектится к usb. меня интересует как должен работать драйвер. насколько я понимаю, устройство при коннекте передаёт своё имя. система передаёт это имя в стек драйверов (?). каждый драйвер в обработчике add_device сверяет это имя, и, если он его знает, создаёт девайс. вопросы: как регистрировать драйвер в системе. что должен делать обработичик add_dervice? только проверить имя и создать device? я смотрел дизассемблерный листинг одного драйвера - там зачем-то парсилась строка имени на наличие hub и имени девайса.
ещё один вопрос. мне одновременно приходится тестировать и моё устройство, и двайвер. я х.з. что из них не работает. в момент подключения система сообщает что подключено неопознанное устройство, но никакой информации о нём не выдаёт. как-то можно посмотреть что это за устройство, его имя и т.п.?
У HID USB устройства есть описание. надо вначале создать описание дескриптора устройства. Оно содержит поля индексов строк изготовителя, ид продукта, серийный номер. Далее надо сделать чтоб девайс обрабатывал запрос типа дескриптора STRING. В общем поизучай стандарты по запросам к устройству. Винда кстати так определяет устройство, посылая ему такой запрос. И то что устройство выдаст - она выводит в трее всплывающим сообщением. Найдено новое устройство ( и внизу его имя).
Читать Уолтера Они до просветления. После можно почитать что-нибудь, относящееся непосредственно к программированию к USB.