Цитата(Kruftin @ Jul 26 2013, 14:44)

Т.е. получил я от хоста 00 00 80 06 00 01 00 00 40 этим хост запрашивает GET_DESCRIPTOR_DEVICE и указывает что хост хочет увидеть 0x40, т.е. 64 байта дескриптора. Дескриптор устройства + Дескриптор Конфигурации + Дескриптор строки не дадут 64 байта, хотя может это максимальный размер.
Ну т.е по логике после запроса хоста я просто сразу же кидаю ему все дескрипторы и после этого анализирую завершение транзакции и всё жду когда он определит моё устройство как флешку. Аппаратный анализатор наверно дорого стоит.
Скорее хост передает 80 06 00 01 00 00 40 00. Он запрашивает только дескриптор устройства. Если control endpoint поддерживает 64-байтные пакеты, то устройство передает полностью пакет DESCRIPTOR_DEVICE (лишние байты в "0"). Если поддерживаются только 8-байтные пакеты, то после приема первых 8 байт хост знает размер дескриптора, рвет прием и заново запрашивает дескриптор уже нужного размера.
На каждый дескриптор хост будет посылать запрос.
Аппаратные анализаторы стоят от нескольких сотен до десятков тысяч $.
PS: Советую посмотреть примеры обмена по USB - многие вопросы отпадут. Либо поискать описание обмена так, либо скачать прогу для аппаратного анализатора и посмотреть примеры (для этого железка не нужна). Например
тут.