На компьютере под управлением Windows 7 периодически прерывалась работа пяти служб одновременно:
- Windows Audio (AudioSrv).
- DHCP-клиент (dhcp).
- Журнал событий Windows (eventlog).
- Модуль поддержки NetBIOS через TCP/IP (lmhosts).
- Центр обеспечения безопасности (wscsvc).
Как обычно, первый шаг – это поиск аналогичных случаев в интернете. Было найдено три варианта решения проблемы:
- Отключить IPv6 ( в настройках сетевого подключения).
- Изменить тип службы DHCP с shared на own (sc.exe config dhcp type= own).
- Отключить службу Центр обеспечения безопасности.
Всё это не помогло. Пытаясь понять причину падений, я обнаружил, что эти службы работают под одним процессом scvhost.exe -LocalServiceNetworkRestricted. Все эти службы имеют тип shared, именно поэтому одним из методов решения проблемы было изменить тип на own, так как shared службы используют для работы общие ресурсы и падение одной приводит к падению остальных. Значит, необходимо определить, какая из служб экстренно прекращает работу. Необходимо было изолировать службу в отдельный процесс, ниже приведен алгоритм выделения службы в отдельный процесс.
К счастью, первой службой, которую я решил изолировать в отдельный процесс, была Windows Audio. Для этого:
- Открыть раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost.
- Открыть параметр LocalServiceNetworkRestricted удалить значение AudioSrv.
- В этом же разделе создать новый параметр типа REG_MULTI_SZ с любым именем (я указал AudioSrv), добавить туда значение AudioSrv, удаленное из LocalServiceNetworkRestricted.
- Открыть раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Audiosrv и изменить параметр ImagePath на %SystemRoot%\System32\svchost.exe -k AudioSrv.
- Перезагрузить службу.
После этого стало ясно, что падает служба Windows Audio и тянет за собой все остальные. Был обновлён драйвер на звуковую карту, после чего падения прекратились. Звуковая карта вызывавшая проблему – VIA 1708S.