Re[5]: Простейший пример драйвера USB-устройства Windows
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 04.01.22 13:29
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Нигде нет примера минимального драйвера, который просто передает hello на USB-девайс и принимает ответ. Почему нет?


Возможно, потому же, почему нет примеров минимального BIOS или кода UEFI, которые можно прошить в ПЗУ любой платы, включить и увидеть на экране "hello".

S>Видимо кто-то хочет оставаться в касте шибко вумных, которые думают что передавать байты — это сложное.


Или никто из профессиональных разработчиков не хочет, чтобы к очередному купленному устройству прилагался драйвер, слепленный "не шибко вумным", поленившимся толком разобраться в сфере своей новой деятельности.

S>А причем тут звук? Механизм драйвера не связан со звуком.


Механизм любого драйвера завязан на реальное время и строгое соблюдение системных соглашений. Если драйвер USB-устройства, работающего со звуком, будет допускать хотя бы миллисекундные задержки — звук будет щелкать и трещать. Для видео это уже не так критично — там можно терять даже отдельные кадры, и почти никто не заметит. Для большинства остальных устройств это еще менее критично — именно поэтому существует немало ужасных драйверов для принтеров, сканеров, токенов и прочих устройств. Но драйвер — не пользовательский процесс, который можно прервать в любой момент. Поэтому эти кривые драйверы нередко мешают работе звукового софта. В любом руководстве по избавлению от заиканий звука Вы найдете советы отключить USB-устройства и сеть. Именно потому, что драйверы этих устройств все чаще делают те, кто учился по методикам, которые Вы предлагаете. Хотите, чтобы таких "продуктов" и их разработчиков становилось больше?

S>Но сам по себе механизм драйверов — это тупо передача данных и не более того.


Прежде всего это точное соблюдение всех спецификаций, протоколов, ограничений, правил и т.п. Любое отступление, которое в обычном софте может быть незаметно десятилетиями, в драйвере нередко выливается в проблемы для всей системы.