Ich benutze manchmalProzessmonitorzum Debuggen von Software und zum Spielen von Online-Spielen. Einige dieser Spiele verwendenBattleEyeAnti-Cheat-Software, die die Ausführung des Spiels verweigert, nachdem Process Monitor auf dem System gestartet wurde, und Folgendes im Protokoll anzeigt:
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.
Der Treiber bleibt nach dem Schließen des Process Monitors geladen und es scheint keine Option zum Entladen zu geben.
Mehrere andere Fragen enthalten Antworten zum Entladen von Treibern mit net stop
oder sc stop
, aber der ProcMon-Treiber ist kein Dienst, also funktioniert das nicht. Ich habe auch versucht, im Geräte-Manager nachzuschauen und „Versteckte Geräte anzeigen“ zu aktivieren, aber keiner der Einträge scheint mit ProcMon in Zusammenhang zu stehen. Ich kann die Treiberdatei nicht löschen, da sie nicht tatsächlich im Dateisystem vorhanden ist; ProcMon speichert die Datei in seiner ausführbaren Datei und extrahiert sie bei Bedarf.
Meine Frage ist kein Duplikat vondiese Frage, bei dem es um ein ähnliches Problem geht, bei dem der Treiber nach einem Neustart weiterhin vorhanden ist. Meine Frage betrifft das Entladen des Treibers ohne Neustart.
Antwort1
StandardtreiberSindDienste und Sie können sie tatsächlich über net
und steuern sc
. (Schauen Sie sich beispielsweise an sc query beep
– das Stoppen des „Beep“-Treibers ist eine gängige Methode, um den internen PC-Lautsprecher stumm zu schalten.)
In früheren Versionen von Process Monitor (wahrscheinlich vor 2.3, als es noch Windows XP-Unterstützung gab) wurde ein „Legacy“-Gerätetreiber installiert, derWarsichtbar über sc
, Geräte-Manager usw.
Aktuelle Versionen von Process Monitor scheinen die Treiber-/Dienstkonfiguration sofort nach dem Starten des Treibers aus der Registrierung zu entfernen. Sie können dies sehen anÜberwachung von ProcMon mit sich selbst. Es ist möglich, den Dienst mit Typ 2 (Kernel-FS-Treiber) manuell erneut hinzuzufügen, und er wird sofort als bereits ausgeführt angezeigt.
Allerdings meldet der Dienst auch „NOT_STOPPABLE“ und lehnt jegliche Stoppversuche ab.
Darüber hinaus registriert sich PROCMON23 nun alsDateisystem-MinifilterTreiber über den Filter-Manager (FltDrv). Sie können es in der Ausgabe von sehen fltmc
, aber der Versuch, es extern zu entladen, schlägt ebenfalls fehl (möglicherweise, weil der Treiber nicht über die Entladeroutine verfügt):
C:\WINDOWS\system32>fltmc Filtername Anzahl Instanzen Höhe Frame ------------------------------ ------------- ------------ ----- PROCMON23 0 385200 0 WdFilter 4 328010 0 storqosflt 0 244000 0 wcifs 1 189900 0 ... C:\WINDOWS\system32>fltmc entladen PROCMON23 Entladen fehlgeschlagen mit Fehler: 0x801f0010 Trennen Sie den Filter zu diesem Zeitpunkt nicht vom Datenträger.
Da das "offizielle" CLI-Tool den Filter nicht aus FltMgr entfernen kann und FltMgrselbstist ein „kritischer“ Treiber, der ohne Neustart nicht neu gestartet werden kann. Es scheint, dass es keine Möglichkeit gibt, PROCMON23 oder PROCMON24 zu entladen.
Aber das Interessanteste: Nachdem ich die oben genannten Prüfungen mit Procmon 3.40 durchgeführt hatte, stellte ich fest, dass die neueste Version auf der Website 3.50 ist (die einen neueren PROCMON24-Treiber verwendet). Beim Starten der neuen Version wurde ich darüber informiert, dass bereits eine ältere Version des Treibers auf dem System vorhanden war und dass ich neu starten sollte.
Wenn ProcMon alsoselbstseinen eigenen Treiber nicht entladen kann, ohne dass ein Neustart erforderlich ist, können Sie meiner Ansicht nach davon ausgehen, dass Sie ihn auch nicht entladen können.
Antwort2
Neben einemausgezeichnete AntwortvonBenutzer1686was zu dem Schluss führt, dass es keine Möglichkeit gibt, ihn zu entladen. Ich möchte hinzufügen, dass ein normaler Neustart unter Windows 10 auch nicht hilft, da Windows 10 heutzutage etwas Speicher behält und ihn beim Hochfahren neu lädt, sodass der Treiber auch nach dem Neustart im Speicher landet.
Um dies zu vermeiden, führen Sie einen Neustart mit diesem als Administrator ausgeführten Befehl durch:
shutdown /r /f /t 0
Dadurch wird ein ordnungsgemäßer Neustart durchgeführt. Überprüfen Sie durch Ausführen fltmc
als Administrator, dass der Treiber nicht mehr vorhanden ist.
Antwort3
Der problematische PROCMON23.SYS
Filtertreiber wird von ProcMon beim Ausführen installiert. Wenn die Datei
C:\Windows\system32\Drivers\PROCMON23.SYS
zu diesem Zeitpunkt nicht vorhanden ist, wird sie von ProcMon geschrieben. Die PROCMON23.SYS
Datei selbst ist als binäre Ressource in der ausführbaren Datei von ProcMon enthalten.
Sie können alle laufenden Filtertreiber auflisten nach:
fltmc filters
und auf meinem Computer ergibt das:
Wie Sie sehen, ist meine Version von Process Monitor neuer als Ihre (24 statt 23).
Normalerweise kann ein Filtertreiber mit einem Befehl wie dem folgenden deinstalliert werden:
Fltmc unload PROCMON24
In diesem Fall wird jedoch eine Eingabeaufforderung mit erhöhten Rechten angezeigt:
Der Entladefehler 0x801f0010 ist der typische Fehler für einen Minifiltertreiber, der über keine Entladeroutine verfügt.
Fazit: PROCMON23.SYS und das spätere PROCMON24.SYS sind schlecht programmiert. Der Entwickler hat nicht vorhergesehen, dass irgendjemand seinen Treiber jemals deinstallieren möchte und hat die notwendige Routine nicht eingebaut. Daher kann dieser Treiber nicht deinstalliert werden.
Die schlechte Nachricht für Sie ist, dass zum Entfernen ein Neustart erforderlich ist. Alles andere funktioniert nicht. Ihre einzige Möglichkeit besteht darin, sich beim Entwickler zu beschweren.
Antwort4
Es scheint, als würde es sich in den Kernel einklinken, den Sie (den Kernel) irgendwie brauchen, um einen Neustart aus anderen Gründen (PC-Absturz) zu verhindern.
Dies würde erklären, warum Sie einen Neustart durchführen müssen, da dies die einzige Möglichkeit ist, die Verbindung zum Kernel zu lösen.