kochevkv 0 22 июля, 2015 Опубликовано 22 июля, 2015 · Жалоба Доброго дня! Устройство должно определяться как Mass Storage Device. Контроллер Blackfin BF548. Драйвер родной от ADI. Подключаю устройство к своему андроид-телефону через OTG кабель - все работает. Подключаю к своему компу с Win7 - в диспетчере устройств появляется 2 пункта (см. картинку), но новый том в Администрирование->Управление компьютером->Управление дисками не появляется и этот пункт при открытии "подвисает". Пробовал удалять драйвера USB, заменял дефолтными. Картина та же. При загрузке Windows в "Безопасном режиме" мой прибор определяется, можно читать/записывать, но не форматируется. На компе с WinXP у коллеги - все OK. Чем мое устройство не угодило Win7 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kochevkv 0 23 июля, 2015 Опубликовано 23 июля, 2015 (изменено) · Жалоба Все. Разобрался, вроде. В драйвере было одно место, где обрабатывался запрос на описание устройства case SCSI_INQUIRY: if(pCommandBlock[1] == 0) { if (datalen == sizeof (adi_msd_InquiryReport)) { memcpy(pBuffer, &adi_msd_InquiryReport, datalen); return (true); } } else // Added for Windows Vista if(pCommandBlock[1] == 1) { memcpy(pBuffer, &adi_msd_InquiryReport_1, 36); *pActualBytesToReturn = 36; return(true); } break; Когда хост запрашивал большее количество байт, чем было у драйвера MSD контроллера - он ( драйвер моего устройства) запрос игнорировал. Исправил на следующее: case SCSI_INQUIRY: if(pCommandBlock[1] == 0) { size_t BytesToCopy; if (datalen >= SCSI_INQUIRY_REPORT_SIZE) { BytesToCopy = SCSI_INQUIRY_REPORT_SIZE; } else { BytesToCopy = datalen; } memcpy(pBuffer, &adi_msd_InquiryReport, BytesToCopy ); *pActualBytesToReturn = BytesToCopy; bResult = true; break; } else // Added for Windows Vista { if(pCommandBlock[1] == 1) { memcpy(pBuffer, &adi_msd_InquiryReport_1, SCSI_INQUIRY_REPORT_SIZE ); *pActualBytesToReturn = SCSI_INQUIRY_REPORT_SIZE; bResult = true; } } break; т.е. запрос обрабатываю, но отправляю хосту только тот объем данных, который у меня фактически есть. Пока работает и форматируется. Изменено 23 июля, 2015 пользователем kolobochishe Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться