Einzelnen Beitrag anzeigen

daPimP

Registriert seit: 26. Okt 2006
25 Beiträge
 
#33

Re: Prozesse oder Anwendungen ermitteln, die eine Datei benu

  Alt 30. Mai 2007, 19:25
Für alle die Mitlesen, hier noch ein paar Links.

Delphi Praxis

und

dateifreigabe

Zusammenfassung:
Info des Autors von Unlocker:
Zitat:
You need to first find all locks opened by a system using undocumented functions such as ZwQueryObject and NtQueryObject.

Then to get informations you need you write a device driver since some informations are only accessible at the device driver level. There is no device driver specific function, it is just that you need to run in a driver to have maximum access to the system.
von Nico zum Thema Treiber:
Zitat:
Der Treiber ist deswegen notwendig, weil die Abfrage des Namens eines Dateiobjektes (Dateien, Verzeichnisse, Pipes, MailSlots, ...) bei synchronisierten Objekten solange benötigt bis die aktuelle Operation abgeschlossen ist (und das kann ewig dauern). Da zum Beispiel der Service Control Manager (SCM) Pipes verwendet um mit Service-DLLs zu kommunizieren, gibt es eine Menge solcher Objekte. Zudem gibt es aus dem Benutzermodus keinen sicheren Weg um Dateien von Pipes und/oder MailSlots zu untercheiden. Der Treiber löst das erste Problem üblicherweise dadurch, dass er den IRP zur Abfrage des Objekts selbst erzeugt. Das zweite Problem kann ebenso im Treiber (mit Hilfe des IFS-Kits) gelöst werden (MailSlots oder Pipes sind an Flags erkennbar).

Kurz, für eine saubere Lösung kommt man nicht um einen Treiber herum.
und

Ironie des Schicksals, nachdem ich immer wieder ein kleines Stück der Lösung näher gerutscht war
und es nun auch geschafft hatte (Danke CCRDude), gibts das schon relativ kompakt im Netz.
Nicht so toll wie meine Lösung , aber dafür OHNE Treiber.

für die Copy&Paste 'ler der Delphi Source.
experts exchange
watch out ... SySSnapper... coming soon
  Mit Zitat antworten Zitat