1 - Устройство, Конфигурация, Интерфейс, Конечная точка являются стандартными дескрипторами для определения устройства и его интерфейсов.Эти дескрипторы содержат общую информацию и могут быть прочитаны драйвером устройства USB.
Но функциональные дескрипторы зависят от класса устройства и известны только драйверам класса.Таким образом, каждый класс, такой как CDC, DFU, HID и т. Д., Имеет свой собственный функциональный дескриптор, специфичный для функциональных возможностей класса.
Функциональный дескриптор описывает специфическое для класса содержимое в дескрипторе интерфейса.Дескриптор интерфейса конкретного класса может иметь более одного функционального дескриптора.Функциональные дескрипторы имеют общий формат заголовка.
2 - Поскольку функциональные дескрипторы являются частью дескриптора интерфейса класса, прочитайте дескриптор интерфейса, используя libusb API, и вы также получите функциональный дескриптор.