Есть девайс с усб хостом, который работает с флешками. Все было ОК пока не начали появляться флешки с технологией U3. Они на компе показываются двумя устройствами CD и флешкой. Часть таких флешек работает в девайсе, а часть нет.
Оказалось что код хоста не выбирает нужный логический юнит после запроса GetMaxLUN, а вместо этого работает всегда с 0-м.
Для проверки, я сделал возврат запроса INQUIRY для юнита 0 и 1. меняя поле bCBWLUN в CBW. И получаю что ответ на INQUIRY для обоих номеров юнита абсолютно одинаковый. Для рабочих флешек PERIPHERAL DEVICE TYPE = 0 в обоих юнитах, для не рабочих там 5 тоде для обоих.
Подскажите как мне правильно для такого вида флешек правильно выделить именно флешевый девайс и работать с ним?
|