Чтобы ответить на ваш вопрос, я уверен, что есть способы получения необходимой вам информации. Я не знаю ответа для windows, но в Linux есть файлы, которые вы можете прочитать в структуре каталогов sysfs.
Контроль скорости обычно осуществляется водителями и оборудованием, управляющим шиной. Большинство современных контроллеров USB действительно имеют 2 контроллера на каждый подключенный порт. 1 для более медленной скорости 12 Мбит / с USB 1.0, а другой для более высокой скорости 480 Мбит / с USB 2.0. Внутри есть магический переключатель, который правильно его соединяет. Сам драйвер гарантирует, что все перечислено правильно, управляет потоком и т. Д. Приложению более высокого уровня «пространство пользователя» обычно не нужно беспокоиться об этих вещах.
Кроме того, если у вас есть устройство, способное работать со скоростью, превышающей 12 Мбит / с, и вы подключаете его к порту 12 Мбит / с, оно будет уменьшено до 12 Мбит / с, нравится вам это или нет. Это то, что вы хотите знать, что вас затянули?