Frage

Von Kernel-Modus in Windows ich in der Lage bin abzufangen und überwachen praktisch alle Aktionen auf einer bestimmten Platte durchgeführt. Wenn eine Datei für jeden Zweck geöffnet wird, erhalte ich ein Ereignis aus.

Jetzt möchte ich die Anwendung verfolgen, die sie geöffnet. Ich denke, dass dies möglich sein soll, aber nicht wissen, wie.

Ich verwende die Standard-Dateiverwaltungsfunktionen in Windows Win32 API.

Vielen Dank im Voraus.

/ Robert

War es hilfreich?

Lösung

Just Win32 N.API verwenden, um die pid aus der Datei-Handle zu erhalten. Es ist eine FAQ für 15 Jahre ...

Andere Tipps

Sysinternals Filemon (kostenlos) tut dies, und noch besser sie beschreiben, wie sie es taten:

  

Für den Windows 9x-Treiber, das Herz   von FileMon ist in den virtuellen Geräten   Fahrer, Filevxd.vxd. Es ist dynamisch   geladen ist, und in seiner Initialisierung es   installiert einen Dateisystemfilter über das   VxD Service,   IFSMGR_InstallFileSystemApiHook, zu   Einsatz selbst auf die Aufrufkette von   alle Dateisystemanforderungen. Unter Windows   NT das Herz von FileMon ist eine Datei   Systemtreiber, der schafft und   Filtervorrichtung misst Objekte   Zieldateisystemgerät Objekte so   dass FileMon alle IRPs sehen und   FastIO Anfragen bei Antrieben gerichtet.   Wenn FileMon einen unabgeschlossen erstellen oder   knapp, aktualisiert er eine interne   Hash-Tabelle, die als der Mapping dient   zwischen dem internen Dateihandles und Datei   Pfadnamen. Immer dann, wenn es sieht Anrufe   die Anforderungen abdecken basieren, sieht es auf der   Griff in der Hash-Tabelle, die zu erhalten   vollständige Namen für die Anzeige. Wenn ein   Griff basierte Zugriffs Referenzen eine Datei   geöffnet, bevor FileMon gestartet, FileMon   scheitern wird die Zuordnung in seinem finden   Hashtabelle und die einfach präsentieren   Handle Wert statt.

-Adam

Sysinternals hat einen so guten Job bei, es zu tun und es zu erklären, dass einige Quellcode der alten Version noch verfügbar sind hier zum Beispiel, und der Code ist gut dokumentiert (imho). Es könnte ein guter Anfang sein als gut.

Ich würde das "handle.exe" App von Sysinternals verwenden.

Oder versuchen Sie tatsächlich diese programmactically zu tun?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top