![]() |
Виснет служба "Диспетчер настройки устройств"
Конфиг ПК: Pentium E6700, 2Gb RAM, HDD 250Gb, Win10 "Home" 22H2 (32-bit).
Предыстория: система не грузилась со стоп-кодом INACCESSIBLE_BOOT_DEVICE. Загрузился с LiveCD и увидел, что диск С: превратился в кашу (файловой системы нет). ChkDsk C: /f /r долго думал и в итоге файловую систему починил, но количество удаленных и восстановленных записей было каким-то поистине запредельным. Лог не сохранил, каюсь, да и подумал тогда, что смысла в этом нет, т.к. после таких повреждений система чаще всего умирает в ноль. К моему удивлению, S.M.A.R.T. диска не показал ни одного переназначенного или нестабильного сектора, светился лишь счетчик CRC-ошибок, но судя по тому, что данный атрибут S.M.A.R.T. восстановился до исходного значения, было это очень давно и к нынешней проблеме отношения не имеет. Предыстория проблемы неизвестна, но недавно в городе мигал свет, скорее всего, это последствия того инцидента. После ChkDsk система по-прежнему не грузилась, стоп-код был все тот же. Попытался откатиться к контрольной точке через среду восстановления, но их не оказалось. Слава богу, это я ставил Windows когда-то на этот комп и тогда же подстелил себе соломки на будущее... Короче, после замены кустов SOFTWARE и SYSTEM из RegBack система успешно загрузилась. Сразу же полез в настройки контрольных точек, но "Защита системы" хоть и работала, но по факту места было занято пару сотен килобайт. Стало быть, контрольных точек реально не было. Уж не знаю, ChkDsk их вынес или юзеры покопались, но факт остается фактом - это уже не первый раз, когда система оказывается без контрольных точек. Ну да ладно... В общем-то, нареканий к работе ОС нет, за исключением одного: "Узел службы: локальная система" грузит одно ядро процессора на 100%. Пробовал ждать около часа, но нагрузка так и не пропала. Устройства из Диспетчера устройств удаляются и устанавливаются нормально, но в Панели управления в окне с принтерами и прочими железками у половины устройств висит иконка с часиками, при этом на удаление и прочие действия нет никакой реакции. Ну, оно как бы и понятно, служба-то висит... Process Explorer показал, что нагрузка идет от службы DsmSvc (Диспетчер настройки устройств), запускается она как дочерний процесс svchost (скриншот №1). Попытка остановить эту службу ни к чему не привела, окно остановки службы долго висело, после чего вывалилась стандартная ошибка про невозможность остановки службы и т.д. Если отключить службу и перезагрузить комп, то все ОК, нагрузки нет. Если запустить службу после этого вручную, то опять появляется вечная загрузка одного ядра. Начал копать дальше. Кнопка Stack в Process Explorer показала любопытную картину: ntoskrnl помечен как UnexpectedInterrupt (скриншот №2). DISM /RestoreHealth сказал, что чего-то там успешно восстановил. SFC тоже чего-то успешно восстановил. Повторный запуск SFC поврежденных файлов не находит. Пробовал смотреть размеры связанных библиотек (combase.dll, devicesetupmanager.dll и т.д.) и сравнивать их с размерами файлов-копий в WinSxS, но никаких отличий не обнаружилось, да и вряд ли SFC или DISM пропустили бы какие-то расхождения. Удалил на всякий случай setupapi.dev.log, удалил клаву, обновил список устройств - все ОК, в свежий setupapi.dev.log записалась инфа об успешной установке устройства. Ну это как бы ожидаемо, так-то подключенная клава, мышь, монитор работают нормально, это только Панель управления считает, что идет их установка, раз иконка с часиками висит. Попробовал использовать Process Monitor, но оказалось, что запуск DsmSvc невозможно отследить, это не имя процесса, ну а записей от основного процесса (svchost) там по понятным причинам выше крыши. Пробовал просто открывать штатный монитор ресурсов в надежде, что он покажет открытые файлы, но после долго ожидания там практически ничего не осталось, только всякие стандартные "Журнал тома", "Основная таблица файлов" и т.п. В журнале системы и приложений ничего тревожного нет, болтается только несколько предупреждений, которые едва ли относятся к проблеме (Ошибка обработки события уведомления из-за недоступности подписчика уведомлений winlogon <GPClient>, Параметры разрешений для конкретного приложения не дают разрешения Локально Запуск для приложения COM-сервера с CLSID Windows.SecurityCenter.WscDataProtection). В общем, я в тупике. Есть служба, которая жрет ресурсы процессора, но я не знаю как отследить куда она обращается при своем запуске. При этом очевидно, что где-то есть какие-то ошметки поврежденных файлов, из-за которых все стопорится. Очистил на всякий случай каталоги Temp (пользовательский и системный), но это результата не дало. Быть может, есть еще какие-то способы мониторинга служб Windows? |
Avatar-Lion, например, в стеке фигурирует DeviceMetadataRetrievalClient.dll - device metadata упоминается в этой теме (там причины были в блокировании доступа к серверам Microsoft).
Или могут быть повреждены: |
О, супер! Очистил полностью папку DeviceMetadataCache, перезагрузился - и всё пришло в норму. Теперь в панели управления красота: у новых устройств пропали иконки с часиками, удаление тоже осуществляется нормально. Спасибо.
|
Время: 04:50. |
Время: 04:50.
© OSzone.net 2001-