Windows 10 предлагает множество замечательных функций, улучшающих работу с Windows. Система состоит из небольших систем, работающих вместе, чтобы предоставить вам интуитивно понятную платформу для всех потребностей вашего компьютера.
Однако несколько пользователей недавно сообщили о получении ошибки события 1020 & amp; Ошибка 1008 Microsoft-Windows-Perflib в Windows 10, не позволяющая запустить уязвимое приложение и влияющая на производительность их компьютера.
Согласно жалобам, ошибка появляется без видимой причины. Нет никаких признаков того, что что-то не так до появления ошибки, например, зависания компьютера или сбоя приложений. Ошибка просто появляется внезапно.
Что еще более важно, не так много онлайн-перезаписей, чтобы узнать, как исправить ошибку события 1020 & amp; Ошибка 1008 Microsoft-Windows-Perflib в Windows 10. Эта ошибка разочаровала и смутила многих затронутых пользователей Windows, не знающих, как с ней бороться.
Совет для профессионалов: просканируйте свой компьютер на наличие проблем с производительностью, нежелательных файлов, вредоносных приложений и угроз безопасности
, которые могут вызвать системные проблемы или снижение производительности.
Бесплатное сканирование для ПК: проблемы с загрузкой 3.145.873Совместимость с: Windows 10, Windows 7, Windows 8
Специальное предложение. Об Outbyte, инструкции по удалению, лицензионное соглашение, политика конфиденциальности.
Поэтому, если вы вдруг столкнетесь с этой ошибкой и не знаете, что делать, это руководство должно вам помочь.
Что такое ошибка события 1020 & amp; 1008 Microsoft-Windows-Perflib Error
Не путайте. Это две разные ошибки: ошибка события 1020 и ошибка события 1008. Но обычно они происходят одновременно, и обстоятельства, связанные с этими ошибками, в основном одинаковы.
Вот сообщение об ошибке, которое вы можете встретить для события ошибка 1008:
img: Perflib
Категория: Нет
Тип: Ошибка
Идентификатор события: 1008
Процедура открытия службы «.NETFramework» в DLL «C: WINDOWS system32 mscoree.dll» завершилась неудачно с кодом ошибки. Система не может найти указанный файл. Данные о производительности для этой службы недоступны.
Вот сообщение об ошибке, которое может возникнуть при ошибке события 1020:
img: Perflib
Категория: Нет
Тип: Ошибка
Идентификатор события: 1008
Требуемый размер буфера больше, чем размер буфера, переданный в функцию сбора расширяемого счетчика DLL «C: Windows System32 perfts.dll» для службы. «LSM». Сообщенный размер буфера составлял 34184, а требуемый размер – 43160.
Эти ошибки могут возникать с любым другим файлом, а не только с mscoree.dll. Это также может произойти при обнаружении ошибки при проверке производительности других файлов DLL.
В приведенном выше сообщении это означает, что система не может найти файл mscoree.dll. Когда пользователь пытался найти файл с помощью odctr / r в Powershell (от имени администратора), появляется сообщение о том, что mscoree.dll был заменен из резервной копии. При запуске команды lodctr / q для вывода списка исправлений даже был указан файл mscoree.dll. Однако ошибка по-прежнему появляется после выполнения вышеуказанного устранения неполадок.
Затронутые пользователи отметили, что кроме этих ошибок, появляющихся в средстве просмотра событий, они не заметили ничего странного с компьютером; Все работало так, как должно, поэтому пользователи понятия не имели, что это могло их вызвать, а что не работало должным образом.
Однако, когда вы получаете любую из этих ошибок, у вас нет беспокоиться, потому что сама эта ошибка не имеет большого значения. Это просто способ Windows сказать, что он не может собирать данные о производительности. Это легкая часть. Избавиться от ошибок – совсем другое дело.
Что вызывает ошибку события 1020 & amp; 1008 Microsoft-Windows-Perflib Error?
Как упоминалось ранее, эти ошибки событий могут возникать для различных приложений. Когда монитор производительности впервые считывает все счетчики, вызывается процедура открытия расширения.
Типичная задача процедуры открытия – прочитать из реестра, какой диапазон индексов объектов она поддерживает. Эти значения индекса хранятся в значениях реестра «Первый счетчик», «Первая справка», «Последний счетчик» и «Последняя справка» под ключом производительности приложения.
Если эта процедура Open не может прочитать данные (т. Е. Эти записи не существуют или были удалены процедурой удаления) событие 1008 или 1020 записывается в журнал событий.
Событие ошибки 1020 и 1008 обычно возникает из-за того, что список счетчиков поврежден и необходимая библиотека DLL отключена . Когда счетчику производительности не удается выгрузить строки для указанной службы, реестр может быть поврежден и отобразить эти ошибки perflib.
Как исправить ошибку события 1020 & amp; 1008 Ошибка Microsoft-Windows-Perflib
Хотя эта ошибка может быть не критичной для вашей системы Windows, получение уведомлений может раздражать, поэтому вы можете решить ее, используя приведенные ниже решения.
Исправление №1: Перезагрузите компьютер.
Первым шагом к исправлению любой ошибки является перезагрузка системы. Обычно это помогает устранить временные сбои на вашем компьютере. Нажмите кнопку питания, затем подождите несколько минут, прежде чем снова запустить его. Вы также можете попробовать загрузиться в безопасном режиме, чтобы узнать, связана ли ошибка со сторонним программным обеспечением.
Исправление №2: Удалите поврежденные файлы.
Другой базовый шаг по устранению неполадок включает запуск команды SFC в командной строке для проверки на наличие поврежденных файлов на вашем компьютере. Этот инструмент автоматически исправляет или заменяет поврежденные файлы, чтобы устранить любую ошибку, с которой вы можете столкнуться. Также рекомендуется очистить вашу систему с помощью Outbyte PC Repair, чтобы предотвратить появление новых ошибок.
Исправление №3: отредактируйте реестр.
Чтобы удалить такие потерянные записи, обычно необходимо выполнить следующие действия:
Исправление №4: перестроить счетчики производительности.
Чтобы устранить эту проблему, заново создайте список счетчиков производительности.
Обратите внимание, что для выполнения этой процедуры требуется членство в локальной группе администраторов. Чтобы восстановить список счетчиков в реестре, выполните следующие действия.
Исправление № 5: повторно включите DLL.
Аналогично, 1008 Microsoft -Windows-Perflib ошибка возникает, когда необходимая DLL отключена. Чтобы решить эту проблему, введите lodctr / e:
Чтобы отключить одну или несколько DLL расширяемых счетчиков:
HKEY_LOCAL_MACHINE System CurrentControlSet Services
Заключение
Получение сообщения об ошибке 1020 & amp; Ошибка 1008 Microsoft-Windows-Perflib в Windows 10 раздражает, но это не критическая ошибка. Если вам не нужны счетчики производительности для службы, упомянутой в событии, вы можете отключить их с помощью инструмента exctrlst.exe (расширяемый список счетчиков производительности). Однако это всего лишь обходной путь, чтобы вы не получали эти уведомления. Если вы действительно хотите исправить эти ошибки, обратитесь к нашему руководству по устранению неполадок выше.
YouTube видео: 5 способов исправить ошибку события 1020 1008 Ошибка Microsoft-Windows-Perflib в Windows 10
05, 2023
- Remove From My Forums
-
Question
-
- The Open Procedure for service “WmiApRpl” in DLL “C:WINDOWSsystem32wbemwmiaprpl.dll” failed. Performance data for this service will not be available. The first four bytes (DWORD) of the Data section contains the error code.
- The Open Procedure for service “BITS” in DLL “C:WindowsSystem32bitsperf.dll” failed. Performance data for this service will not be available. The first four bytes (DWORD) of the Data section contains the error code.
- The Open Procedure for service “.NETFramework” in DLL “C:WINDOWSsystem32mscoree.dll” failed. Performance data for this service will not be available. The first four bytes (DWORD) of the Data section contains the error code.
Please help me resolve this!
Thanks 🙂
Answers
-
Hi Gil-Levy,
Please try to add WSS_WPG group full control to those registry keys.
Here is a similar case for reference:
Solving WmiApRpl and BITS errors with SharePoint 2013 on Windows Server 2012
http://weblogs.asp.net/wesleybakker/Solving-WmiApRpl-and-BITS-errors-with-SharePoint-2013-on-Windows-Server-2012If the issue persists, please try the following command line.
Best regards
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.
-
Edited by
Wednesday, March 16, 2016 9:15 AM
-
Proposed as answer by
MeipoXuMicrosoft contingent staff
Wednesday, March 23, 2016 7:14 AM -
Marked as answer by
Kate LiMicrosoft employee
Friday, April 8, 2016 2:54 AM
-
Edited by
“Ошибка Windows Perflib Ошибка события 1020 и 1008” можно столкнуться, когда ПК или ноутбук не может найти файл, указанный при определенной операции. Это конкретное ограничение видно в «Журнал просмотра событий” и может возникнуть из-за повреждения списка счетчиков, отключения требуемой библиотеки DLL или наличия вредоносного ПО.
В этой статье будут обсуждаться решения для устранения ограничения «Windows Perflib Event».
Как исправить «Windows Perflib error Event Error 1020 & 1008»?
Чтобы устранить заявленное ограничение «Событие», рассмотрите следующие исправления:
- Бегать “SFCСкан.
- Инициировать “DISMСкан.
- Удалить ключ реестра.
- Перерегистрируйте DLL.
Исправление 1: запустить сканирование «SFC»
Запуск “SFC (проверка системных файлов)” сканирование эффективно для обнаружения и исправления зараженных/поврежденных файлов. Чтобы запустить это сканирование, выполните приведенные ниже шаги.
Шаг 1. Запустите «Административную командную строку».
Откройте командную строку с помощью «Административные привилегии”:
Шаг 2: Запустите сканирование «SFC»
Теперь запустите следующую команду, чтобы выполнить «ПФС» скан:
>ПФС /сканирование
Исправление 2: инициировать сканирование «DISM»
“DISM» можно рассматривать как альтернативу «ПФС” скан. Эти сканирования также эффективны при выполнении проверок работоспособности путем отслеживания поврежденных файлов и их исправления. Чтобы запустить это конкретное сканирование, прежде всего, проверьте работоспособность образа системы, введя приведенную ниже команду:
>DISM.exe /В сети /Cleanup-образ /проверить здоровье
На следующем шаге инициируйте проверку работоспособности образа системы:
>DISM.exe /В сети /Cleanup-образ /Сканхелс
Наконец, завершите процедуру, восстановив работоспособность образа системы, используя предоставленную команду:
>DISM.exe /В сети /Cleanup-образ /Восстановить здоровье
После применения всех шагов проверьте, устранена ли возникшая проблема. В противном случае перейдите к следующему исправлению.
Исправление 3: удалить ключ реестра
Удаление значения «Открыть” также может помочь устранить обсуждаемое ограничение событий, выполнив следующие шаги.
Шаг 1. Переключитесь на «Редактор реестра».
Прежде всего, перейдите к «Редактор реестра», набрав «regedit» в поле «Выполнить» ниже:
Шаг 2: Создайте резервную копию
Теперь создайте резервную копию, чтобы вернуть реестр в нормальное состояние, если при внесении изменений в реестр возникнет какая-либо аномалия. Этого можно добиться, просто выбрав «Файл->Экспорт”:
Шаг 3. Перейдите в каталог «NET CLR Networking».
Теперь следуйте по указанному ниже пути, чтобы найти «Открыть” ключ:
>КомпьютерHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices.NET CLR NetworkingPerformance
В приведенном выше пути укажите путь службы, с которой вы столкнулись. Например, на этом конкретном пути:Сеть .NET CLR” является проблемным сервисом.
Шаг 4: Удалите ключ «Открыть»
Наконец, найдите «Открыть» в конкретной службе, щелкните ее правой кнопкой мыши и вызовите «Удалить», чтобы удалить этот ключ:
Теперь перезагрузите ПК или ноутбук, и обсуждаемый вопрос, скорее всего, уладится. В противном случае перейдите к следующему исправлению.
Исправление 4: перерегистрируйте DLL
Регистрация DLL — эффективный способ добавить информацию в «Реестр”. Поэтому попробуйте перерегистрировать зараженный»dll», чтобы справиться с обсуждаемым ограничением.
Шаг 1. Перейдите в каталог «system32».
Введите следующую команду в поле «Административная командная строка», чтобы перейти в указанный каталог:
>CD%SYSTEMROOT%System32
Для обработки «Ошибка 1020», выполните приведенную ниже команду:
>лодктр /р
Чтобы обработать появившуюся ошибку в терминале, введите следующие команды одну за другой, чтобы избавиться от нее:
>CD C:WindowsSysWOW64
>лодктр /р
Теперь, чтобы справиться “Ошибка 1008“, введите следующую команду:
>лодктр /e: Perflib.dll
Обратите внимание, что “Perflib.dll” соответствует проблемному файлу, который будет заменен вашим конкретным файлом, вызывающим проблемы:
Шаг 2. Повторная синхронизация счетчика
Наконец, “повторная синхронизация” счетчик с “Инструментарий управления Windows“, введя приведенную ниже команду:
>WINMGMT.EXE /ПОВТОРНАЯ СИНХРОНИЗАЦИЯ
Перезагрузите ПК/ноутбук, и обсуждаемое ограничение, скорее всего, исчезнет.
Заключение
Чтобы решить «Ошибка Windows Perflib Ошибка события 1020 и 1008“, запустить “SFC” Сканировать, инициировать “DISM” отсканируйте, удалите раздел реестра или перерегистрируйте DLL. В этой статье подробно рассматриваются подходы к устранению ошибки события Windows Perflib.
Reading time: 5 Minutes
Windows 10/11 presents numerous impressive features that enhance the overall Windows experience. It is composed of interconnected subsystems that work in harmony to deliver an intuitive platform catering to all your computer requirements.
However, several users have recently reported getting the event error 1020 & 1008 Microsoft-Windows-Perflib error on Windows 10/11, preventing them from running the affected application and affecting their computer’s performance.
According to the complaints, the error appears for no apparent reason. There is no indication that there is something wrong before the error pops up, like the computer freezing up or the apps crashing. The error just appears suddenly.
More importantly, there is not much online resource to turn to on how to fix the Event Error 1020 & 1008 Microsoft-Windows-Perflib error on Windows 10/11. This error has left a lot of affected Windows users frustrated and confused, not knowing how to deal with this error.
So if you encounter this error all of a sudden and you don’t know what to do, this guide should be a great help.
Don’t be confused. These are two different errors: event error 1020 and event error 1008. But they usually happen at the same time and the circumstances surrounding these errors are basically the same.
Here is the error message you might encounter for event error 1008:
Source: Perflib
Category: None
Type: Error
Event ID: 1008
The open procedure for the service “.NETFramework” in the DLL “C: WINDOWS system32 mscoree.dll” failed with the error code. The system can not find the stated file. Performance data for this service is not available.
Here is the error message you might encounter for event error 1020:
Source: Perflib
Category: None
Type: Error
Event ID: 1008
The required buffer size is larger than the buffer size transferred to the collect function of the expandable counter DLL “C: Windows System32 perfts.dll” for the service “LSM”. The reported buffer size was 34184 and the required size was 43160.
These errors can happen with any other file, not just mscoree.dll. It can also happen when the error is encountered when running a performance check on other DLL files.
In the above message, it means that the system can’t find the mscoree.dll. When the user tried to find the file using the odctr /r in Powershell (as admin), a message appears saying that mscoree.dll was replaced from a backup. When running the lodctr /q command to list repairs, mscoree.dll was even listed. However, the error still appears after doing the above troubleshooting.
The affected users noted that apart from these errors appearing in the Event Viewer, they didn’t notice anything strange with the computer; Everything was working like it should, so users had no idea what this could be causing them and what wasn’t working as they should.
However, when you get any of these errors, you don’t have to worry because this error itself isn’t a big deal. It is just Windows’ way of saying that it can’t collect performance data. That is the easy part. Getting rid of the errors is a whole different story.
What Causes Event Error 1020 & 1008 Microsoft-Windows-Perflib Error?
As mentioned earlier, these event errors may occur for various applications. When the performance monitor reads all counters for the first time, the extension’s Open Procedure is called.
A typical task for the Open procedure is to read what range of object indexes it supports from the registry. These index values are stored in the First Counter, First Help, Last Counter, and Last Help registry values under the application’s performance key.
If this Open procedure fails to read the data (i.e. those entries don’t exist or have been deleted by an uninstall procedure) the 1008 or 1020 event is recorded in the event log.
Error event 1020 and 1008 usually occurs because a list of counters is corrupted and a required DLL has been disabled. When the performance counter fails to unload the strings for the specified service, the registry might get corrupted and show these perflib errors.
How to Fix Event Error 1020 & 1008 Microsoft-Windows-Perflib Error
Although this error might not be critical to your Windows system, it can be annoying getting the notifications so you might want to deal with it using the solutions below.
Fix #1: Restart your computer.
The first step to fixing any error is to reboot the system. It is usually effective in resolving temporary glitches on your computer. Press the Power button, then wait for a few minutes before starting it again. You can also try booting into Safe Mode to see if the error is related to third-party software.
Fix #2: Remove corrupted files.
Another basic troubleshooting step involves running the SFC command in Command Prompt to check for corrupted files on your computer. This tool automatically fixes or replaces corrupted files to resolve any error you might be experiencing. It is also recommended to clean up your system using [sc name=”outbyte-pc-repair”] to prevent further errors from popping up.
Fix #3: Edit the Registry.
In order to remove such orphaned entries typically one has to follow these steps:
- Start Registry Editor (Regedt32.exe or Regedit.exe)and go to the following subkey:
- HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices<service name>:Performance
- Delete the value ” Open.”
- Restart your computer for this change to take effect.
Fix #4: Rebuild Performance Counters.
To fix this issue, rebuild the list of performance counters.
- Click Start.
- Type CMD in the search bar.
- Right-click Command Prompt.
- Choose Run as administrator.
- Enter the following command and hit Enter key– CD %SYSTEMROOT%System32
- At the command prompt, type lodctr /r.
- Press Enter.
- Similarly, for error 1008, type lodctr /e:<DLL name> and then press Enter.
Please note that the Membership in the local Administrators group is required to complete this procedure. To rebuild the list of counters in the registry do the following.
- Click on the Windows 10/11 Start button.
- In the Search box that appears, type CMD or Command Prompt.
- When the option is seen, right-click it and select Run as administrator option.
- Now, in the Command Prompt window that appears on your screen, enter the following command and hit Enter key – cd %SYSTEMROOT%System32.
- Again enter the following command and hit Enter key – lodctr /r.
Fix #5: Re-enable the DLL.
Similarly, 1008 Microsoft-Windows-Perflib error occurs when the required DLL is disabled. To resolve the issue, type lodctr /e:</<DLL name> and then press ENTER (replace <DLL name> with the file name of the library).
To disable one or more extensible counter DLL(s):
- Start the Registry Editor (RegEdt32.exe).
- Navigate to the following registry subtree:
HKEY_LOCAL_MACHINESystemCurrentControlSetServices - Click Find Key on the View menu.
- Type Performance as the search string, then search down from there.
- At each Performance entry you find, select the Library value and modify the library name by prefixing it with two x”s: for example, change OrigLib.dll to xxOrigLib.dll
- When you have done each Performance entry under the CurrentControlSet Services key, restart Perfmon to see whether it works. If it does, then repeat the above two steps, only restoring the original library name and trying Perfmon after each change to see which library causes the fault.
Wrapping Up
Getting the Event Error 1020 & 1008 Microsoft-Windows-Perflib error on Windows 10/11 is annoying but it is not a critical error. If you do not need the performance counters for the service mentioned in the event you can disable them using the exctrlst.exe tool (Extensible Performance Counter List). However, this is only a workaround so that you won’t get these notifications. If you really want to resolve these errors, refer to our troubleshooting guide above.
Give us some love and rate our post!
Vicrey Makapagal
Vic is a tech enthusiast who loves to be up-to-date with the latest and greatest technology in the world. He creates content that educates and helps users with their tech-related questions. Vic manages our website to ensure that our readers have a seamless experience while browsing. He excels in troubleshooting errors and resolving Windows issues for gaming and work purposes.
perflib.dll: что это? и как его убрать
Файл perflib.dll из Unknown Company является частью unknown Product. perflib.dll, расположенный в c: Program Files (x86) Parallels Plesk Additional Perl lib auto Win32 PerfLib с размером файла 32890 байт, версия файла Unknown Version, подпись 5063B629E15DEE06CC2F9830005AB4B6.
В вашей системе запущено много процессов, которые потребляют ресурсы процессора и памяти. Некоторые из этих процессов, кажется, являются вредоносными файлами, атакующими ваш компьютер.
Чтобы исправить критические ошибки perflib.dll,скачайте программу Asmwsoft PC Optimizer и установите ее на своем компьютере
Всего голосов ( 181 ), 115 говорят, что не будут удалять, а 66 говорят, что удалят его с компьютера.
5 способов исправить ошибку события 1020 1008 Ошибка Microsoft-Windows-Perflib в Windows 10 (06.13.22)
Windows 10 предлагает множество замечательных функций, улучшающих работу с Windows. Система состоит из небольших систем, работающих вместе, чтобы предоставить вам интуитивно понятную платформу для всех потребностей вашего компьютера.
Однако несколько пользователей недавно сообщили о получении ошибки события 1020 & amp; Ошибка 1008 Microsoft-Windows-Perflib в Windows 10, не позволяющая запустить уязвимое приложение и влияющая на производительность их компьютера.
Согласно жалобам, ошибка появляется без видимой причины. Нет никаких признаков того, что что-то не так до появления ошибки, например, зависания компьютера или сбоя приложений. Ошибка просто появляется внезапно.
Что еще более важно, не так много онлайн-перезаписей, чтобы узнать, как исправить ошибку события 1020 & amp; Ошибка 1008 Microsoft-Windows-Perflib в Windows 10. Эта ошибка разочаровала и смутила многих затронутых пользователей Windows, не знающих, как с ней бороться.
Совет для профессионалов: просканируйте свой компьютер на наличие проблем с производительностью, нежелательных файлов, вредоносных приложений и угроз безопасности
, которые могут вызвать системные проблемы или снижение производительности.
Бесплатное сканирование для ПК: проблемы с загрузкой 3.145.873Совместимость с: Windows 10, Windows 7, Windows 8
Специальное предложение. Об Outbyte, инструкции по удалению, лицензионное соглашение, политика конфиденциальности.
Поэтому, если вы вдруг столкнетесь с этой ошибкой и не знаете, что делать, это руководство должно вам помочь.
Что такое ошибка события 1020 & amp; 1008 Microsoft-Windows-Perflib Error
Не путайте. Это две разные ошибки: ошибка события 1020 и ошибка события 1008. Но обычно они происходят одновременно, и обстоятельства, связанные с этими ошибками, в основном одинаковы.
Вот сообщение об ошибке, которое вы можете встретить для события ошибка 1008:
img: Perflib
Категория: Нет
Тип: Ошибка
Идентификатор события: 1008
Процедура открытия службы «.NETFramework» в DLL «C: WINDOWS system32 mscoree.dll» завершилась неудачно с кодом ошибки. Система не может найти указанный файл. Данные о производительности для этой службы недоступны.
Вот сообщение об ошибке, которое может возникнуть при ошибке события 1020:
img: Perflib
Категория: Нет
Тип: Ошибка
Идентификатор события: 1008
Требуемый размер буфера больше, чем размер буфера, переданный в функцию сбора расширяемого счетчика DLL «C: Windows System32 perfts.dll» для службы. «LSM». Сообщенный размер буфера составлял 34184, а требуемый размер — 43160.
Эти ошибки могут возникать с любым другим файлом, а не только с mscoree.dll. Это также может произойти при обнаружении ошибки при проверке производительности других файлов DLL.
В приведенном выше сообщении это означает, что система не может найти файл mscoree.dll. Когда пользователь пытался найти файл с помощью odctr / r в Powershell (от имени администратора), появляется сообщение о том, что mscoree.dll был заменен из резервной копии. При запуске команды lodctr / q для вывода списка исправлений даже был указан файл mscoree.dll. Однако ошибка по-прежнему появляется после выполнения вышеуказанного устранения неполадок.
Затронутые пользователи отметили, что кроме этих ошибок, появляющихся в средстве просмотра событий, они не заметили ничего странного с компьютером; Все работало так, как должно, поэтому пользователи понятия не имели, что это могло их вызвать, а что не работало должным образом.
Однако, когда вы получаете любую из этих ошибок, у вас нет беспокоиться, потому что сама эта ошибка не имеет большого значения. Это просто способ Windows сказать, что он не может собирать данные о производительности. Это легкая часть. Избавиться от ошибок — совсем другое дело.
Что вызывает ошибку события 1020 & amp; 1008 Microsoft-Windows-Perflib Error?
Как упоминалось ранее, эти ошибки событий могут возникать для различных приложений. Когда монитор производительности впервые считывает все счетчики, вызывается процедура открытия расширения.
Типичная задача процедуры открытия — прочитать из реестра, какой диапазон индексов объектов она поддерживает. Эти значения индекса хранятся в значениях реестра «Первый счетчик», «Первая справка», «Последний счетчик» и «Последняя справка» под ключом производительности приложения.
Если эта процедура Open не может прочитать данные (т. Е. Эти записи не существуют или были удалены процедурой удаления) событие 1008 или 1020 записывается в журнал событий.
Событие ошибки 1020 и 1008 обычно возникает из-за того, что список счетчиков поврежден и необходимая библиотека DLL отключена . Когда счетчику производительности не удается выгрузить строки для указанной службы, реестр может быть поврежден и отобразить эти ошибки perflib.
Как исправить ошибку события 1020 & amp; 1008 Ошибка Microsoft-Windows-Perflib
Хотя эта ошибка может быть не критичной для вашей системы Windows, получение уведомлений может раздражать, поэтому вы можете решить ее, используя приведенные ниже решения.
Исправление №1: Перезагрузите компьютер.
Первым шагом к исправлению любой ошибки является перезагрузка системы. Обычно это помогает устранить временные сбои на вашем компьютере. Нажмите кнопку питания, затем подождите несколько минут, прежде чем снова запустить его. Вы также можете попробовать загрузиться в безопасном режиме, чтобы узнать, связана ли ошибка со сторонним программным обеспечением.
Исправление №2: Удалите поврежденные файлы.
Другой базовый шаг по устранению неполадок включает запуск команды SFC в командной строке для проверки на наличие поврежденных файлов на вашем компьютере. Этот инструмент автоматически исправляет или заменяет поврежденные файлы, чтобы устранить любую ошибку, с которой вы можете столкнуться. Также рекомендуется очистить вашу систему с помощью Outbyte PC Repair, чтобы предотвратить появление новых ошибок.
Исправление №3: отредактируйте реестр.
Чтобы удалить такие потерянные записи, обычно необходимо выполнить следующие действия:
Чтобы устранить эту проблему, заново создайте список счетчиков производительности.
Обратите внимание, что для выполнения этой процедуры требуется членство в локальной группе администраторов. Чтобы восстановить список счетчиков в реестре, выполните следующие действия.
Аналогично, 1008 Microsoft -Windows-Perflib ошибка возникает, когда необходимая DLL отключена. Чтобы решить эту проблему, введите lodctr / e:
Используйте функции потребителя PerfLib для использования данных о производительности от поставщиков данных производительности версии 2, если вы не можете использовать вспомогательные функции данных производительности (PDH). Эти функции можно использовать при записи OneCore приложений для сбора наборов счетчиков версии 2 или при необходимости сбора наборов счетчиков версии 2 с минимальными зависимостями и дополнительными расходами.
Функции потребителя PerfLib версии 2 сложнее использовать, чем функции вспомогательного средства обработки данных производительности (PDH) и поддерживают сбор данных только от поставщиков версии 2. Функции PDH должны быть предпочтительнее для большинства приложений.
Функции потребителя PerfLib версии 2 — это низкоуровневый API для сбора данных от поставщиков версии 2. Функции потребителя PerfLib версии 2 не поддерживают сбор данных от поставщиков версии 1.
Функции-получатели PerfLib версии 2 могут собирать данные из ненадежных источников, например из локальных служб с ограниченными привилегиями или с удаленных компьютеров. Функции-получатели PerfLib версии 2 не проверяют данные на наличие целостности или согласованности. Приложение-получатель проверяет согласованность возвращаемых данных, например, что значения «Размер» в возвращаемом блоке данных не превышают фактический размер возвращаемого блока данных. Это особенно важно, если приложение-получатель выполняется с повышенными привилегиями.
Использование PerfLib
Заголовок perflib.h включает объявления, используемые поставщиками пользовательского режима версии 2 (т. е. API поставщика PerfLib) и потребителями версии 2 (т. е. API потребителя PerfLib). Он объявляет следующие функции для использования данных о производительности версии 2:
- Используйте PerfEnumerateCounterSet , чтобы получить идентификаторы GUID наборов счетчиков, зарегистрированных поставщиками версии 2 в системе.
- Используйте PerfQueryCounterSetRegistrationInfo , чтобы получить сведения о конкретном наборе счетчиков, например имя, описание, тип (один экземпляр или несколько экземпляров), типы счетчиков, имена счетчиков и описания счетчиков.
- Используйте PerfEnumerateCounterSetInstances , чтобы получить имена текущих активных экземпляров набора счетчиков с несколькими экземплярами.
- Используйте PerfOpenQueryHandle , чтобы создать новый дескриптор запроса, используемый для сбора данных из одного или нескольких наборов счетчиков.
- Чтобы закрыть дескриптор запроса, используйте PerfCloseQueryHandle .
- Используйте PerfAddCounters для добавления запроса в дескриптор запроса.
- Используйте PerfDeleteCounters для удаления запроса из дескриптора запроса.
- Используйте PerfQueryCounterInfo для получения сведений о текущих запросах на дескриптор запроса.
- Используйте PerfQueryCounterData для сбора данных о производительности из дескриптора запроса.
Если потребитель будет использовать данные только от определенного поставщика, где индексы GUID и счетчиков являются стабильными, и у вас есть доступ к файлу символов, созданному CTRPP (из параметра CTRPP -ch ), вы можете жестко закодировать guid набора счетчиков и значения индекса счетчиков в объекте-получателе.
В противном случае необходимо загрузить метаданные набора счетчиков, чтобы определить GUID набора счетчиков и индексы счетчиков, которые будут использоваться в запросе следующим образом:
- Используйте PerfEnumerateCounterSet , чтобы получить список поддерживаемых guid наборов счетчиков.
- Для каждого GUID используйте PerfQueryCounterSetRegistrationInfo для загрузки имени набора счетчиков. Остановите поиск имени, который вы ищете.
- Используйте PerfQueryCounterSetRegistrationInfo , чтобы загрузить оставшиеся метаданные (конфигурацию набора счетчиков, имена счетчиков, индексы счетчиков, типы счетчиков) для этого набора счетчиков.
Если вам просто нужно знать имена текущих активных экземпляров набора счетчиков (т. е. если вам не нужны фактические значения данных о производительности), можно использовать PerfEnumerateCounterSetInstances. Он принимает GUID набора счетчиков в качестве входных данных и возвращает PERF_INSTANCE_HEADER блок с именами и идентификаторами текущих экземпляров заданного набора счетчиков.
Запросы
Для сбора данных о производительности необходимо создать дескриптор запроса, добавить в него запросы и собрать данные из запросов.
С дескриптором запроса может быть связано множество запросов. При вызове PerfQueryCounterData для дескриптора запроса PerfLib выполнит все запросы дескриптора и собирает все результаты.
Каждый запрос задает GUID набора счетчиков, фильтр имени экземпляра, необязательный фильтр идентификатора экземпляра и дополнительный фильтр идентификатора счетчика.
- Идентификатор GUID набора счетчиков является обязательным. Он указывает GUID набора счетчиков, из которого запрос будет собирать данные. Это похоже на FROM предложение SQL-запроса.
- Требуется фильтр имен экземпляра. Он указывает шаблон с подстановочными знаками, что имя экземпляра должно совпадать с именем экземпляра, который должен быть включен в запрос, с * указанием «любых символов» и ? указанием «один символ». Для наборов счетчиков с одним экземпляром необходимо задать строку “” нулевой длины. Для наборов счетчиков с несколькими экземплярами необходимо задать непустую строку (используется для “*” принятия всех имен экземпляров). Это похоже на WHERE InstanceName LIKE NameFilter предложение SQL-запроса.
- Фильтр идентификатора экземпляра является необязательным. Если имеется (т. е. если задано значение, отличное 0xFFFFFFFF от ), он указывает, что запрос должен собирать только экземпляры, в которых идентификатор экземпляра соответствует указанному идентификатору. Если значение отсутствует (т. е. если задано 0xFFFFFFFF значение), оно указывает, что запрос должен принимать все идентификаторы экземпляров. Это похоже на WHERE InstanceId == IdFilter предложение SQL-запроса.
- Фильтр идентификатора счетчика является необязательным. Если имеется (т. е. если задано значение, отличное PERF_WILDCARD_COUNTER от значения), он указывает, что запрос должен собирать один счетчик, аналогичный SELECT CounterName предложению SQL-запроса. Если значение отсутствует (т. е. если задано PERF_WILDCARD_COUNTER значение), оно указывает, что запрос должен собирать все доступные счетчики, аналогичные SELECT * предложению SQL-запроса.
Используйте PerfAddCounters для добавления запросов в дескриптор запроса. Используйте PerfDeleteCounters для удаления запросов из дескриптора запроса.
После изменения запросов в дескрипторе запроса используйте PerfQueryCounterInfo для получения индексов запросов. Индексы указывают порядок, в котором результаты запроса будут возвращены PerfQueryCounterData (результаты не всегда будут соответствовать порядку, в котором были добавлены запросы).
Когда дескриптор запроса будет готов, используйте PerfQueryCounterData для сбора данных. Обычно данные собираются периодически (раз в секунду или раз в минуту), а затем обрабатываются по мере необходимости.
Счетчики производительности не предназначены для сбора более одного раза в секунду.
PerfQueryCounterData вернет PERF_DATA_HEADER блок, состоящий из заголовка данных с метками времени, за которым следует последовательность PERF_COUNTER_HEADER блоков, каждая из которых содержит результаты одного запроса.
Может PERF_COUNTER_HEADER содержать различные виды данных, как указано значением dwType поля:
- PERF_ERROR_RETURN — PerfLib не может получить допустимые данные счетчика от поставщика.
- PERF_SINGLE_COUNTER — запрос был для одного счетчика из набора счетчиков с одним экземпляром. Результаты содержат только запрошенное значение счетчика.
- PERF_MULTIPLE_COUNTERS — запрос был для нескольких счетчиков из набора счетчиков с одним экземпляром. Результат содержит значения счетчиков вместе со сведениями о сопоставлении каждого значения с соответствующим счетчиком (т. е. заголовками столбцов).
- PERF_MULTIPLE_INSTANCES — запрос был для одного счетчика из набора счетчиков с несколькими экземплярами. Результаты содержат сведения об экземпляре (т. е. заголовки строк) и по одному значению счетчика на экземпляр.
- PERF_COUNTERSET — запрос был для нескольких счетчиков из набора счетчиков с несколькими экземплярами. Результаты содержат сведения об экземпляре (т. е. заголовки строк), значения счетчиков для каждого экземпляра и сведения о сопоставлении каждого значения с соответствующим счетчиком (т. е. заголовками столбцов).
Значения, возвращаемые PerfQueryCounterData , являются UINT32 необработанными UINT64 значениями. Обычно для получения ожидаемых форматированных значений требуется некоторая обработка. Требуемая обработка зависит от типа счетчика. Многим типам счетчиков требуется дополнительная информация для полной обработки, например метка времени или значение из «базового» счетчика в одном образце.
Некоторые типы счетчиков являются «разностными» счетчиками, которые имеют смысл только при сравнении с данными из предыдущего примера. Например, счетчик типа PERF_SAMPLE_COUNTER имеет форматируемое значение, которое, как ожидается, будет отображать скорость (количество случаев, когда определенное событие произошло в секунду в течение интервала выборки), но фактическое необработанное значение — это всего лишь число (количество случаев, когда в общей сложности произошло определенное значение). Чтобы создать форматируемое значение rate, необходимо применить формулу, соответствующую типу счетчика. Формула для PERF_SAMPLE_COUNTER (N1 — N0) / ((T1 — T0) / F) : вычитает значение текущей выборки из значения предыдущей выборки (указывая количество раз, когда событие произошло в течение интервала выборки), затем разделите результат на количество секунд в интервале выборки (полученное путем вычитания метки времени текущего образца из метки времени предыдущего примера и деления по частоте для преобразования интервала времени в секунды).
Дополнительные сведения о вычислении форматированных значений из необработанных значений см. в разделе «Вычисление значений счетчиков «.
Пример
В следующем коде реализуется потребитель, использующий функции потребителя PerfLib версии 2 для чтения сведений о производительности ЦП из набора счетчиков «Сведения о процессоре».
Потребитель организован следующим образом:
- Класс CpuPerfCounters реализует логику для использования данных о производительности. Он инкапсулирует дескриптор запроса и буфер данных, в который записываются результаты запроса.
- В CpuPerfTimestamp структуре хранятся сведения о метке времени для примера. Каждый раз, когда вызывающий объект собирает данные, получает один CpuPerfTimestamp .
- В CpuPerfData структуре хранятся сведения о производительности (имя экземпляра и необработанные значения производительности) для одного ЦП. Каждый раз при сборе данных вызывающий объект получает массив CpuPerfData (по одному на ЦП).
В этом примере используются жестко закодированные значения GUID набора счетчиков и идентификаторов счетчиков, так как он оптимизирован для определенного набора счетчиков (сведения о процессоре), который не будет изменять значения GUID или идентификатора. Более универсальный класс, который считывает данные о производительности из произвольных наборов счетчиков, потребуется использовать PerfQueryCounterSetRegistrationInfo для поиска сопоставления между идентификаторами счетчиков и значениями счетчиков во время выполнения.