Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
UCX выполняет управление корневым концентратором. Он моделирует и управляет виртуальными управляющими и прерывающими конечными точками. UCX создает эти виртуальные конечные точки, когда драйвер контроллера узла создает корневой объект концентратора.
Драйвер USB-концентратора взаимодействует с корневым концентратором таким же образом, как он взаимодействует с обычным устройством концентратора. Однако драйвер контроллера узла не должен обрабатывать запросы, отправленные в корневой концентратор для конечных точек управления и прерывания напрямую. UCX обрабатывает эти запросы. UCX вызывает функции обратного вызова, реализованные драйвером контроллера узла, чтобы он смог вернуть соответствующие сведения о текущем состоянии портов контроллера узла. После завершения этих функций обратного вызова основные запросы UCX завершаются и передаются обратно в драйвер концентратора.
При получении передачи прерывания для корневого концентратора UCX помещает запрос в очередь ожидания. При обнаружении изменения на одном из портов корневого концентратора драйвер контроллера узла вызывает UcxRootHubPortChanged. Затем UCX вызывает обратный вызов драйвера EVT_UCX_ROOTHUB_INTERRUPT_TX, и драйвер указывает, какой порт был изменен. В данный момент UCX завершает ожидающий на обработку запрос обратно в драйвер концентратора. Драйвер концентратора отправляет контрольную передачу в корневой концентратор, чтобы получить состояние порта порта, который сигналировал об изменении. UCX задает запрос на передачу в состояние ожидания и вызывает функцию обратного вызова драйвера EVT_UCX_ROOTHUB_CONTROL_URB. В реализации показывается текущее состояние порта корневого концентратора, включая информацию о том, что устройство подсоединено. UCX завершает запрос на передачу элемента управления в главный драйвер, а перечисление устройств продолжается.