Einzelnen Beitrag anzeigen

Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Dateiname aus Dateihandle ermitteln

  Alt 3. Sep 2008, 13:22
Dein Code ist nicht falsch, er kehrt nur nie zurück, da die Objekte auf die Abfrage nicht anworten bzw. nicht/nie bereit sind, um die Anfrage abzuarbeiten.

Da ganze in Threads auszulagern verschiebt nur das Problem (da hilft auch kein CancelIoEx). Wenn du den Thread beendest und die Anfrage doch noch zurückkehrt, dann zeigen die Pointer auf einen nicht mehr gültigen Speicherbereich. Eigentlich sollte das kein Problem sein - aber in der Praxis kommt es zu Problemen mit Kernel-Komponenten (Treiber, Filter, Viren-Scanner), was im schlimmsten Fall zu BSODs führt.

Zudem ist es in der Praxis schwierig, _jedes_ "Datei"-Handle abzufragen. Durch die Anfrage werden Pipes/Mailslots/etc "ausgelöst", was dazu führt, dass Wait- und Read-Funktionen zurückkehren - natürlich ohne Daten zur Verfügung zu haben. Wenn die Programme mit diesem Fall nicht umgehen können (nur ein Beispiel von vielen: Tobit David’s interne Inter-Prozess-Kommunikation), dann kommt es zu Fehlern und Zugriffsverletzungen in den entsprechenden Programmen.

Eine saubere Lösung für den Benutzermodus kenne ich nicht.
  Mit Zitat antworten Zitat