Einzelnen Beitrag anzeigen

Kasoft

Registriert seit: 5. Mai 2004
Ort: Filderstadt
111 Beiträge
 
Delphi 7 Professional
 
#3

Re: Dateihandles auf einem bestimmten Laufwerk beenden

  Alt 11. Jan 2005, 16:20
Das ein Datenverlust entstehen kann ist mir klar. Das würde ich in kauf nehmen (sogar müssen).
Für die Anwendung wäre es sogar von großer Bedeutung das genau das passiert.

Ich gehe mal von einer anderen Seite die Sache an:

Ein Programm soll verbieten das USB-Sticks angeschlossen werden. Alle anderen USB-Geräte (wie Maus, Tastatur Drucker) sollen trotzdem weiter funktioren. Bis zu diesem Punkt ist das kein Problem. USB-Speicher werden innerhalb weniger ms nachdem er initialisiert ist wieder sauber entfernt. Auch Festplatten werden korrekt innerhalb ein paar ms entfernt. Jetzt gibt es aber diese MultiCardReader mit dem man z.B. 4 verschiedene Laufwerke bekommt indem man sie einstöpselt. 4 Laufwerke brauchen auch einiges an Zeit in der sie gemountet werden. Diese Zeit beträgt ca 5 Sekunden. In diesen 5 Sekunden werden die einzelnen Laufwerke hintereinander gemountet. Sprich nach der 1. Sekunde ist Laufwerk 1 da nach der 2. Laufwerk 2 usw.
Jetzt ist es mir nicht möglich dieses mounten vorher abzubrechen sondern muss warten bis alle sauber gemountet sind um dann sofort wieder auszuwerfen. In dieser Zeit kann der Benutzer aber auf die schon gemounteten Laufwerke zugreifen. Und genau das darf nicht geschehen. Wenn in dieser Zeit es der Benutzer schafft eine einfache Textdatei zu öffnen bekomme ich keine Priorität um die Laufwerke abzumelden sondern muss warten bis die Textdatei beendet wird.
Hier will ich jetzt eingreifen. Dafür gibts verschiedene Möglichkeiten wie zum Beispiel das gemountete Laufwerk sofort nach dem Mounten zu sperren und dann wenn alles fertig ist wieder auszuwerfen. Hieran bin ich gescheitert weil ich von Windows keine Rückmeldung bekomme welche Laufwerke wohin gemapped sind. Daher habe ich es eigentlich als einfacher erachtet alle Handles auf das Laufwerk zu "killen" (wie kann man das anders nennen...)
Datenverlust darf sein.
Dieses Problem gab es mal bei scandisk (oder checkdisk??). Der hat dann einfach alle Handles abgeschossen die Zugriff auf das zu prüfende Laufwerk hatten. Wenn ich die Quelle wiederfinde werde ich sie mal posten.

MfG
Kasoft
  Mit Zitat antworten Zitat