Цитата(aaarrr @ Feb 17 2015, 13:11)
Теперь понятно. Насколько мне известно, такого механизма нет.
Не заложено или не реализовано?
Цитата
9.4.3 Get Descriptor
This request returns the specified descriptor if the descriptor exists.
Default state: This is a valid request when the device is in the Default state.
Address state: This is a valid request when the device is in the Address state.
Configured state: This is a valid request when the device is in the Configured state.
Композит похож на хаб наличием разнородных интерфейсов, очевидно независимых друг от друга на стороне хоста. Нормально было бы применять к нему похожую логику работы ПО хоста. Если не реализовали, то жаль конечно. Если сделать хост на другом микроконтроллере, то горячее изменение кол-ва интерфейсов вероятно можно реализовать. Но если этот хост потом воткнуть девайсом в комп, то возникнет проблема из абзаца ниже. То есть её решить можно только принципом гоячих изменений конфигурации/дескрипторов.
При отключении части интерфейсов даже имена дисков и ком-портов корректно сохранялись бы и у активых и у вновь появившихся благодаря полю bInterfaceNumber. А у (имитации) хаба такой возможности нет. Хотя, если ОС при обнаружении подключения к хабу видит физический номер его порта, а не оперирует только назначенным адресом, то это даст возможность корректно сохранять идентификаторы интерфейсов и в имитации хаба.
Оптимальнее было бы заложить в атрибуты дескриптора устройства (не интерфейса) флаг динамической/горячей конфигурации чтобы не тратить ресурсы на опрос девайсов с жёсткой конфигурацией. Мечты, мечты...