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.