Отказ на пороге, а не отсутствие драйвера
Работа устройства в Windows начинается с того, что диспетчер Plug and Play находит драйвер и просит его создать объект для конкретного оборудования. Драйвер проверяет, что может управлять этим устройством, готовит свои структуры, подключается к нижним драйверам шины. Если на этом шаге он возвращает ошибку, устройство остаётся без управления с кодом 31. В справке для разработчиков Microsoft уточняет: ошибку вернула процедура добавления устройства в самом драйвере, а её точный код записывается в свойства устройства.
Этим код 31 отличается от соседних. При коде 28 драйвер не найден, при коде 39 он не смог даже загрузиться в память, при коде 10 загрузился и принял устройство, но не сумел его запустить. Здесь драйвер запустился и отказался от устройства. Отказывается он по разным причинам: версия не рассчитана на эту ревизию чипа или эту сборку Windows, в цепочке драйверов стоит посторонний фильтр, повреждены настройки устройства в реестре, устройство отвечает не то, что драйвер ожидает.
Отсюда и развилка «система или железо». Если код появился после обновления Windows или драйвера, после установки или удаления VPN-клиента, эмулятора, антивируса, программы записи дисков, картина программная. Если он возник у встроенного устройства сам по себе и держится при любых драйверах, особенно у Wi-Fi-модуля, камеры или адаптера Bluetooth ноутбука, под подозрением само оборудование или его подключение.
