Windows 10 v1903へアップデートしたタイミングで、
イベントID1020、Perflib のエラーログが記録されました。
[キーワード]
- LSM: Local Session Manager
- Perflib: performance counter libraries
- perfts.dll
WindowsサービスのLSMは問題なし。
perflib(パフォーマンスカウンターライブラリ)に問題ありでした。
イベントログ
メッセージ | 必要なバッファー サイズが、"LSM" サービスの "C:\Windows\System32\perfts.dll" 拡張可能カウンター DLL の Collect 関数に渡されたバッファー サイズを超えています。指定されたバッファー サイズは 27696、必要なサイズは 35616 でした。 |
ログの名前 | Application |
ソース | Perflib |
イベントID | 1020 |
レベル | エラー |
ユーザー | SYSTEM |
修復方法
[PLAN]
- パフォーマンスカウンターを再構築する
- perfts.dllを再構築する
PLAN-A
ログにPerflibが記録される時は、パフォーマンスカウンターを再構築する方法が有効です。管理者モードで起動したコマンドプロンプト(または、Windows PowerShell)を使用します。
>lodctr /R
>_
| 管理者:Windows PowerShell | ー □ × |
PS C:\WINDOWS\system32> lodctr /R 情報: パフォーマンス カウンターの設定をシステムのバックアップ ストアから正常に再構築しました |
PLAN-B
perfts.dllを再構築するにはPerfIniFileが必要です。レジストリエディターでperfts.dllを検索すると \LSM\Performance で lagcounterdef.ini を見つけることができました。
PerfIniFile=lagcounterdef.ini
LODCTRコマンドの引数にlagcounterdef.iniを設定してperfts.dllを再構築(初期化)します。
>LODCTR ...\lagcounterdef.ini
>_
| 管理者:Windows PowerShell | ー □ × |
PS C:\WINDOWS\system32> lodctr C:\Windows\INF\LSM\0411\lagcounterdef.ini |
エラーメッセージが表示されなければperfts.dllの再構築は成功しています。
例えば、以下のメッセージが表示されたときはINIファイルの場所を確認しましょう。
初期化ファイル ...\lagcounterdef.ini が見つかりません
lagcounterdef.iniの探し方
DLLとINIのファイル名が異なる時は、次の法則をたよりに探すことができます。
C:\Windows\INF\<ServiceName>\0411\xxx.ini
または、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LSM\Performance
または、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LSM\Performance
LSM: Local Session Manager
ローカル ユーザー セッションを管理するコア Windows サービスです。このサービスを停止したり無効にしたりすると、システムが不安定になります。[LSMのプロパティ]
- 実行ファイルのパス:C:\WINDOWS\system32\svchost.exe -k DcomLaunch -p
- スタートアップの種類:自動
- サービスの状態:実行中
まとめ
[EVENT ID 1020]- ソース:Perflib
- Perflibはパフォーマンスカウンターライブラリのこと。
- Perflib、Perflib.dllは初期化することができる。
- Perflib.dllの初期化は、lagcounterdef.iniが必要。
External link
:SC2
このサイトを検索 | Search this site