Tool zum Protokollieren der Festplatten-E / A des bestimmten Prozesses in der Datei

1382
Soonts

Ich verwende Windows 8 x64. Die MSSE (umbenannt in Windows Defender) verursacht während des Schnellscans ständig BSoD (das hier beschriebene Problem ). Ich möchte herausfinden, welche Datei zuletzt aufgerufen wurde.

Normalerweise verwende ich SysInternals Process Monitor für solche Aufgaben. Es hat jedoch keine Möglichkeit, Ereignisse zu speichern, wenn sie generiert werden. Da das System mit BSoD abstürzt, kann ich keine Ausgabe sehen.

Kennen Sie das Tool zur Überwachung der Festplatten-E / A wie SysInternals Process Monitor, das alle Daten auf der Festplatte speichert (natürlich die eigene Festplatten-E / A-Filterung)?

1

2 Antworten auf die Frage

2
magicandre1981
  1. Aktivieren Sie einen vollständigen Absturzspeicherauszug. Drücken Sie Win+ Pause, wechseln Sie zu "Erweiterte Systemeinstellungen" → Registerkarte "Erweitert" und klicken Sie unter "Starten und Wiederherstellen" auf Einstellungen.

  2. Stellen Sie sicher, dass Ihre Auslagerungsdatei groß genug ist, um einen vollständigen Speicherauszug aufzunehmen, dh mindestens RAM + 256 MB.

    • Gehen Sie zu "Erweiterte Systemeinstellungen" → Registerkarte "Erweitert"

    • Klicken Sie unter Leistung auf Einstellungen und wechseln Sie zur Registerkarte Erweitert

    • Klicken Sie auf "Ändern" und wählen Sie "Benutzerdefinierte Größe".

    • Vergessen Sie nicht, vor OK auf Set zu klicken, OK funktioniert nicht

    Wenn danach weniger als (25 GB + RAM) auf dem Systemlaufwerk verfügbar ist, gehen Sie wie folgt vor:

    • Öffnen Sie Regedit

    • navigiere zu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

    • Erstellen Sie einen DWORD-Schlüssel AlwaysKeepMemoryDumpmit dem Wert 1

    • Neustart

  3. Starten Sie eine Xperf-Ablaufverfolgung ( xperf –on DiagEasyüber die Administrationskonsole), die die Festplattenaktivität erfasst.

  4. Führen Sie MSE (oder Windows Defender) aus und warten Sie auf den Absturz.

  5. Starten Sie Windows neu und öffnen Sie die Datei Memory.dmp mit WinDbg. Führen Sie in Windbg den folgenden Befehl aus, um alle aktiven ETW-Protokolle anzuzeigen:

    !wmitrace.strdump 
  6. Schauen Sie, welche Nummer der "NT Kernel Logger" ist. Führen Sie nun den folgenden Befehl aus, um die Daten in eine ETL-Datei zu exportieren:

    !wmitrace.logsave 0xNUMBER c:\DISK.etl 
  7. Öffnen Sie die ETL-Datei in xperfview / WPA und sehen Sie in der Datenträger-E / A-Grafik nach, auf welche Dateien zugegriffen wurde.

Ich habe es geschafft, den vollständigen Speicherauszug zu erstellen und die ETL zu speichern. Das Problem ist, dass die WPA die ETL nicht öffnen will und besagt "Trace C: \ Temp \ Crashes \ DISK.etl konnte nicht erfolgreich geöffnet werden [0x80070570]. Vorgang wird abgebrochen". Irgendwelche Ideen? Soonts vor 11 Jahren 0
Der Code bedeutet, dass die Datei beschädigt ist (0x80070570 = ERROR_FILE_CORRUPT). Versuchen Sie stattdessen, die ETL mit xperfview zu öffnen. magicandre1981 vor 11 Jahren 0
Gleicher Fehler Übrigens habe ich das Gefühl, dass diese beiden Tools (wpa.exe und xperfview.exe) lediglich dünne Wrapper über einige gemeinsam genutzte Bibliotheken sind (sogar der Fehlernammentitel ist derselbe "Windows Performance Analyzer"). Versucht, die ETL neu zu erstellen - kein Glück. Soonts vor 11 Jahren 0
Fragen Sie MSFT hier in den Kommentaren oder per E-Mail, wie Sie beschädigte ETL-Dateien vermeiden können: http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-29-WinDbg-ETW-Logging magicandre1981 vor 11 Jahren 1
0
grawity

Process Monitor can write to a log file on disk, see File → Backing Files.

Nope. The file 'C:\Temp\2remove\FileIO.PML' was not closed cleanly during capture and is corrupt. Soonts vor 11 Jahren 1