Сообщение о том, что подключение SuperSpeed к USB-устройству продолжает переходить в состояние ошибки Compliance, обычно появляется в журнале событий Windows или в диагностических утилитах контроллера xHCI и означает, что хост-контроллер не смог завершить процедуру согласования скоростного режима с подключённым устройством. Compliance State в спецификации USB 3.x — это тестовое состояние линка, в которое устройство переводится при проверке качества сигнала; если устройство «застревает» в нём или постоянно в него возвращается, обмен данными на скорости SuperSpeed (5 Гбит/с и выше) невозможен.

На практике это проявляется так: накопитель, внешний диск или хаб либо вообще не определяется системой, либо работает в режиме USB 2.0, либо периодически отваливается с повторным переподключением. Ниже разберём, откуда берётся эта ошибка и как её локализовать без риска для оборудования.

Что означает состояние Compliance в USB 3.x

При подключении устройства к порту SuperSpeed хост-контроллер и устройство выполняют процедуру link training — согласование параметров передачи сигнала по дифференциальным парам SSTX и SSRX. Одно из служебных состояний этой процедуры называется Compliance Mode: в нём устройство передаёт тестовые паттерны, по которым оценивается качество сигнала (джиттер, амплитуда, целостность глаз-диаграммы).

В норме устройство проходит это состояние за доли секунды и переходит к рабочему режиму U0. Если же в логах видно, что линк постоянно уходит в Compliance и возвращается в Recovery или откатывается на USB 2.0, это указывает на проблему физического уровня: сигнал не проходит верификацию, и контроллер перезапускает согласование снова и снова.

💡

Ошибка Compliance — это симптом проблемы физического уровня: кабель, разъём, питание порта или несовместимость контроллера и устройства, а не программный сбой Windows.