ソフトウェアのデバッグに Process Monitor を使用したり、オンラインでゲームをプレイしたりすることもあります。これらのゲームの一部は BattlEye アンチチートソフトウェアを使用しており、システムでProcess Monitorが起動した後にゲームを実行することを拒否し、これをログに表示します。
08:06:46: Starting BattlEye Service...
08:06:49: Launching game...
08:07:07: Disallowed driver: "\??\C:\Windows\system32\Drivers\PROCMON23.SYS". Please unload it or reboot your system.
ドライバーはプロセスモニターを閉じた後もロードされたままで、アンロードするオプションがないようです。
他のいくつかの質問には、net stop
またはsc stop
を使用したドライバーのアンロードに関する回答がありますが、ProcMonドライバーはサービスではないため、これは機能しません。デバイスマネージャーで[非表示のデバイスの表示]を有効にしてみましたが、ProcMonに関連するエントリは表示されません。ドライバーファイルは実際にはファイルシステムに存在しないため、削除できません。 ProcMonはファイルを実行可能ファイルに保存し、必要に応じて抽出します。
私の質問は この質問 の重複ではありません。これは、再起動後もドライバが保持される同様の問題に関するものです。私の質問は、再起動せずにドライバーをアンロードすることです。
標準ドライバーはサービスであり、net
およびsc
を介して実際にそれらを制御できます。 (たとえば、sc query beep
–「ビープ音」ドライバを停止することは、内蔵PCスピーカーをシャットダウンする一般的な方法です。)
以前のプロセスモニターバージョン(おそらく2.3より前、Windowsがまだある場合XPサポート)、それはだった「レガシー」デバイスドライバーをインストールしますsc
、デバイスマネージャなどを介して表示.
プロセスモニターの現在のバージョンは、ドライバーを起動した直後にレジストリからドライバー/サービス構成を削除するようです。これは ProcMon自体を監視する で確認できます。タイプ2(カーネルFSドライバー))を使用して、サービスを手動で再追加することが可能で、すぐにすでに実行中と表示されます。
ただし、サービスは「NOT_STOPPABLE」も報告し、停止の試行を拒否します。
さらに、PROCMON23は、フィルターマネージャー(FltDrv)を介してfilesystem minifilterドライバーとして自分自身を登録するようになりました。 fltmc
の出力で確認できますが、外部からアンロードしようとしても失敗します(おそらく、ドライバーにアンロードルーチンがないためです)。
C:\ WINDOWS\system32> fltmc フィルター名Num Instances Altitude Frame ---------------- -------------- ------------- ------------ ----- PROCMON23 0 385200 0 WdFilter 4 328010 0 storqosflt 0 244000 0 wcifs 1 189900 0 ... C:\WINDOWS\system32> fltmc unload PROCMON23 アンロードが次のエラーで失敗しました:0x801f0010 この時点でボリュームからフィルターを切り離さないでください。
「公式の」CLIツールはFltMgrからフィルターを削除できず、FltMgritselfは再起動しないと再起動できない「重要な」ドライバーであるため、 PROCMON23またはPROCMON24をアンロードする方法はないようです。
しかし、最も興味深い部分:procmon 3.40で上記のチェックを行った後、Webサイトの最新バージョンは3.50(新しいPROCMON24ドライバーを使用)であることがわかりました。新しいバージョンを開始すると、古いバージョンのドライバーが既にシステム上にあり、再起動する必要があることが通知されました。
したがって、ProcMonitselfが再起動せずに独自のドライバーをアンロードできない場合、アンロードすることもできないと考えて間違いないと思います。
問題のあるPROCMON23.SYS
フィルタードライバーは、実行時にProcMonによってインストールされます。ファイルC:\Windows\system32\Drivers\PROCMON23.SYS
はその時点では存在しないので、ProcMonが書き込みます。 PROCMON23.SYS
ファイル自体は、ProcMonの実行可能ファイル内にバイナリリソースとして含まれています。
次の方法で、実行中のすべてのフィルタードライバーを一覧表示できます。
fltmc filters
そして私のコンピュータではこれは次のようになります:
ご覧のとおり、私のバージョンのProcess Monitorはあなたのバージョンより新しいです(23ではなく24)。
通常、フィルタードライバーは次のようなコマンドでアンインストールできます。
Fltmc unload PROCMON24
ただし、この場合は、コマンドプロンプトが昇格します。
アンロードエラー0x801f0010は、アンロードルーチンを持たないミニフィルタードライバーの一般的なエラーです。
結論:PROCMON23.SYSおよびそれ以降のPROCMON24.SYSは正しくプログラムされていません。開発者は、だれもが自分のドライバをアンロードすることを望み、必要なルーチンをそれに含まないことを予測していません。したがって、このドライバーはアンロードできません。
あなたにとっての悪いニュースは、それを処分するために再起動が必要であるということです、他には何も仕事をしません。あなたの唯一の手段は、開発者に文句を言うことです。