Строка Class FF, Subclass 00 в свойствах USB-устройства или в логе lsusb -v означает, что устройство не принадлежит ни к одному стандартному классу USB (HID, Mass Storage, Audio и т.д.), а использует vendor-specific — производительский — интерфейс, и система не может подобрать драйвер автоматически по классу. Именно поэтому такие устройства часто отображаются в диспетчере устройств Windows с восклицательным знаком или определяются как «Неизвестное USB-устройство».

Коды класса и подкласса — это поля bDeviceClass и bDeviceSubClass в дескрипторе USB-устройства. Значение 0xFF официально зарезервировано спецификацией USB для классов, определяемых производителем, а 0x00 в подклассе обычно означает, что производитель не стал вводить дополнительную иерархию. Ниже разберём, где посмотреть эти коды, что они говорят о природе устройства и как найти подходящий драйвер.

Что означают коды Class FF и Subclass 00

Каждое USB-устройство при подключении передаёт хосту набор дескрипторов — структурированных данных о себе. Среди них есть поля класса, подкласса и протокола. Операционная система использует эти поля, чтобы понять, какой стандартный драйвер загрузить: например, класс 03h — это HID (клавиатуры, мыши), 08h — накопители, 02h — коммуникационные устройства (CDC, виртуальные COM-порты).

Значение FFh (255 в десятичной системе) — особый случай. Оно сигнализирует: «стандартного класса нет, протокол обмена определяет сам производитель». Подкласс 00h при этом не несёт самостоятельного смысла — его интерпретация тоже остаётся на совести вендора. Протокол (третье поле) в таких устройствах чаще всего тоже равен 00h или содержит внутренний код производителя.

💡

Class FF / Subclass 00 — это не ошибка, а признак vendor-specific устройства: драйвер для него должен поставлять производитель, а не операционная система.