我有時會用過程監控器用於調試軟體,還可以在線上玩遊戲。其中一些遊戲使用戰眼反作弊軟體,在系統上啟動進程監視器後拒絕允許遊戲運行,在日誌中顯示:
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 將檔案儲存在其執行檔中並根據需要提取它。
我的問題不是重複的這個問題,這是關於驅動程式在重新啟動後仍然存在的類似問題。我的問題是關於卸載驅動程式而不重新啟動。
答案1
標準驅動程式是服務,您確實可以通過net
和控制它們sc
。 (例如,看看sc query beep
- 停止「嘟嘟」驅動程式是關閉內部 PC 揚聲器的常見方法。)
在早期的 Process Monitor 版本中(可能是 2.3 之前的版本,當時它仍然支援 Windows XP),它將安裝一個「舊版」裝置驅動程式曾是sc
通過、設備管理器等可見。
當前版本的進程監視器似乎會在啟動驅動程式後立即從註冊表中刪除驅動程式/服務配置。你可以透過以下方式看到這個監控 ProcMon 自身。可以使用類型 2(內核 FS 驅動程式)手動重新新增服務,它將立即顯示為已在運行。
但是,該服務還將報告“NOT_STOPPABLE”並拒絕任何停止嘗試。
此外,PROCMON23 現在將自己註冊為檔案系統微過濾器透過過濾器管理器 (FltDrv) 驅動程式。您可以在 的輸出中看到它fltmc
,但嘗試從外部卸載它也會失敗(可能是因為驅動程式沒有卸載例程):
C:\WINDOWS\system32>fltmc 過濾器名稱 實例數 海拔高度 ------------------------------ ------------- ------- ----- ----- PROCMON23 0 385200 0 西德過濾器 4 328010 0 斯托克斯弗爾特 0 244000 0 西西弗斯 1 189900 0 … C:\WINDOWS\system32>fltmc 卸載 PROCMON23 卸載失敗,錯誤:0x801f0010 此時請勿將過濾器從體積上拆下。
由於「官方」CLI 工具無法從 FltMgr 中刪除過濾器,且 FltMgr本身是一個「關鍵」驅動程序,不重新啟動就無法重新啟動,似乎無法卸載 PROCMON23 或 PROCMON24。
但最有趣的部分是:在對 procmon 3.40 進行上述檢查後,我發現網站上的最新版本是 3.50(使用更新的 PROCMON24 驅動程式)。啟動新版本後,我被告知系統上已存在舊版本的驅動程序,我應該重新啟動。
所以如果 ProcMon本身無法在不需要重新啟動的情況下卸載其自己的驅動程序,我認為您可以放心地假設您也無法卸載它。
答案2
答案3
有問題的PROCMON23.SYS
過濾器驅動程式由 ProcMon 在運行時安裝。如果該檔案
C:\Windows\system32\Drivers\PROCMON23.SYS
當時不存在,則 ProcMon 將寫入它。檔案PROCMON23.SYS
本身作為二進位資源包含在 ProcMon 的可執行檔中。
您可以透過以下方式列出所有正在運行的過濾器驅動程式:
fltmc filters
在我的電腦上這給了:
正如您所看到的,我的 Process Monitor 版本比您的版本新(24 而不是 23)。
通常可以透過以下命令卸載過濾器驅動程式:
Fltmc unload PROCMON24
但是,在這種情況下,這會給出提升的命令提示字元:
卸載錯誤 0x801f0010 是沒有卸載例程的微型篩選器驅動程式的典型錯誤。
結論:PROCMON23.SYS 和後來的 PROCMON24.SYS 程式錯誤。開發人員沒有預見到有人會希望卸載他的驅動程序,並且沒有在其中包含必要的例程。因此無法卸載該驅動程式。
對您來說壞消息是需要重新啟動才能處理它,沒有其他方法可以完成這項工作。你唯一的辦法就是向開發商投訴。