Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

AW: Prozess finden, der Datei offen hat

  Alt 4. Nov 2010, 15:10
Aber Nico hat recht, und zwar hier:

Zitat von Olli:
ZwQuerySystemInformation und ZwQueryObject[...]
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.
... das war der Hasenfuß.
Genau die Begründung meinte ich. Also hatte ich doch Recht, dass man für eine saubere Lösung nicht um einen Treiber drum rum kommt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat