Event ID 1010 Perflib: The Collect Procedure in DLL failed
Симптомы ошибки Event ID 1010 (Perflib)
В журнале Application фиксируется ошибка от службы сбора метрик Perflib с кодом Event ID 1010:
The Collect Procedure for the "LsaSrv" service in DLL "C:\Windows\System32\lsasrv.dll" generated an exception or returned an invalid status. The data returned is in the counter definition.
Характерные проявления:
- Служба сбора метрик Perfmon зависает при попытке построить график загрузки конкретного сервиса.
- В отчетах системных мониторов появляются провалы (gaps) данных.
- Вторичные ошибки Event ID 1008 и 1023 в журнале приложений.
В чем разница между 1008 и 1010: Ошибка 1008 возникает на этапе открытия (Open Procedure) библиотеки счетчиков, а ошибка 1010 — непосредственно в процессе сбора данных (Collect Procedure), когда библиотека возвращает некорректный блок памяти.
Инструкция по устранению сбоя Event ID 1010
Увеличение времени ожидания ответа счетчика (Configuration Flags)
Если тяжелая служба не успевает вернуть данные за стандартный таймаут, увеличьте лимит ожидания:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib" -Name "Configuration Flags" -Value 2 -Type DWordПересборка базовых и расширенных счетчиков Windows
Восстановите стандартный набор счетчиков из системных резервных копий INI-файлов:
cd C:\Windows\System32 wbem\winmgmt /clearadap wbind = lodctr /R wbind64 = lodctr /R C:\Windows\SysWOW64 winmgmt /resyncperfПроверка поврежденных файлов DLL через SFC
Если сбой происходит внутри системной библиотеки (например, lsasrv.dll или netapi32.dll), проверьте ее цифровую подпись и целостность:
sfc /scanfile=C:\Windows\System32\lsasrv.dll
Частые вопросы (FAQ)
Почему процедура сбора Collect Procedure генерирует исключение?
Обычно это вызвано утечкой памяти в опрашиваемой службе, повреждением структур буфера данных или конфликтом версий разрядности (32-бит vs 64-бит).
Что делает флаг Configuration Flags = 2 в реестре Perflib?
Этот флаг указывает системе не отключать счетчик при первом же сбое, а продолжать попытки сбора с увеличенным временем ожидания ответа от DLL.
Как изолировать проблемную DLL счетчика?
В тексте события Event ID 1010 всегда указан точный путь к сбойной DLL (например, perfdisk.dll или aspnet_perf.dll).
Поможет ли установка обновлений Windows решить проблему 1010?
Да, если сбой вызван багом в системной библиотеке Microsoft, установка накопительного пакета обновления (Cumulative Update) заменяет поврежденную DLL на исправную версию.