| « BAADF00D | Делаем HDTV-видеорегистратор » |
Протокол нужен для того чтобы его соблюдать... В ходе реализации драйвера мы много времени потратили вовсе не на реализацию, а на решение проблемы почему при отказе от обработки команды, которая в спецификации USB значится как опциональная возникает задержка на подключение устройства. Протокол обязывает останавливать поток признаком Halt и тут же сообщать о готовности дальнейшей работы. Только в нашем случае почему-то Винда выжидала паузу в 10 сек. В тоже время, Linux не спрашивал ничего лишнего, на что мы не могли бы ответить. Мы поизучали логи флешек. Флешки почему-то вообще не используют Halt прежде чем ответить с нарушением ожидаемой длины. В итоге сработало решение отвечать "пустышкой"-ноликами на любой опциональный запрос. Видимо винда никак не анализирует эти запросы.
URL трекбека (щелкните правой кнопкой мыши и скопируйте ссылку)