Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo an alle Interessenten!

Obwohl die meisten hier gestellten Fragen für mich Kinderfragen sind, stehe ich nun selbst wie ein Kind vor einem Problem; wer könnte mir weiterhelfen?

Umgebung:

C++, MFC

Aufgabenstellung:

Sobald man über den Internet Explorer oder auch cmd.exe, etc. einen neuen Ordner auf dem System erstellt, löscht oder verschiebt, soll meine eigene MFC-Anwendung hierüber informiert werden.

Frage:

Ist dies über einen geeigneten Interrupt möglich, und wenn ja, wie könnte ich diesen Interrupt abfangen (bislang keine Erfahrung mit Interrupts), oder gibt es gar eine andere elegante Lösung.

Für sachdienliche Hinweise bedanke ich mich bereits vorab und freue mich über jeden Hinweis.

Mit freundlichem Gruß

Geschrieben
Umgebung:

C++, MFC

Dann bist du hier im falschen Forum. Ich verschiebe deinen Thread mal an die richtige Stelle ;)

Ist dies über einen geeigneten Interrupt möglich, und wenn ja, wie könnte ich diesen Interrupt abfangen (bislang keine Erfahrung mit Interrupts),
"Interrupt" ist hier das falsche Stichwort, davon spricht man unter Windows eigentlich nur bei Hardwarezugriffen im Kernelmode.

Ich hätte da vier Ansätze:

1) File System Filter Driver

2) Hooking der zugehörigen API-Funktionen (CreateDirectory, CreateDirectoryEx usw.)

3) ReadDirectoryChangesW (obwohl das für ganze Volumes wohl nicht angebracht ist)

4) Zugriff aufs Change Journal (falls es um NTFS geht)

Alles Ansätzen ist gemein, dass du nicht vorab nach dem erstellenden Programm filtern kannst. Wenn dir das wichtig ist, kannst du dich ja nochmal melden.

Geschrieben

Hallo "Klotzkopp", hallo an alle!

Vielen Dank für die schnelle Antwort!

Zu Deinen Ansätzen:

Ansatz 4 kommt nicht in Betracht, da auch FAT32 impliziert sein muß.

Ansatz 3 (ReadDirectoryChangesW) ist sehr interressant, wirkt aber weniger griffig.

Ansatz 2 Hooking erscheint mir zielgerichteter.

Ansatz 1 erscheint mir perfekt.

Resume:

Ansatz 3 + 4 scheiden aus. Würde gerne mehr über Ansatz 2 + (insbesondere) Ansatz 1 erfahren, vielleicht sogar mit Codebeispiel. Natürlich habe ich die MSDN und unterschiedliche Foren durchforstet. Doch so ganz erschließen sich mir diese Themen nicht ganz, zumal (fast) alles auf Englisch ist. Oder kennst du vielleicht einen geeigneten Link auf eine gute (DEUTSCHSPRACHIGE) Seite?

Du sagtest: "Alles Ansätzen ist gemein, dass du nicht vorab nach dem erstellenden Programm filtern kannst. Wenn dir das wichtig ist, kannst du dich ja nochmal melden." -> Wäre schon wichtig, aber kein muss.

In froher Hoffnung und besten Dank

Geschrieben

Also ich würde auf jeden Fall Methode 3 bevorzugen und nur wenn dabei die Performance des Systems zu sehr in den Keller geht etwas anderes versuchen.

Obtaining Directory Change Notifications (Windows)

Zu Methode 1 kann ich nichts sagen aber API Hooking würde ich dafür nicht oder nur als aller letzte Möglichkeit in Betracht ziehen, vorallen wenn es sich um eine Anwendung handelt welche an andere verteilt werden soll...

Geschrieben

Welche Betriebssystemversionen willst Du unterstützen?

PS: Warum musst Du denn überwachen, was mit Ordnern geschieht?

Wenn Du .NET verwenden kannst: Dort gibt es ein FileSystemWatcher Objekt. Eventuell reicht Dir das.

Geschrieben

Betriebssysteme: Win95/98 (sollte), XP (muss), Vista (muss)

Aufgabenziel der Anwendung: autom. Datenspiegelung/Back-Up (~echtzeit)

.NET: kommt (z.Z. noch) nicht in Betracht

...suche noch immer eingehenden Referenzcode für Ansatz 1.

Geschrieben
Aufgabenziel der Anwendung: autom. Datenspiegelung/Back-Up (~echtzeit)
Dann bist du IMHO mit allen genannten Ansätzen komplett auf dem falschen Dampfer.

Dir muss klar sein, dass du innerhalb eines Dateisystemfiltertreibers z.B. nicht die normalen Windows-Datei-APIs benutzen kannst. Du kannst also nicht so einfach die Dateioperationen "duplizieren".

Für mich klingt das eher so, als ob du ein Software-RAID 1 suchst.

...suche noch immer eingehenden Referenzcode für Ansatz 1.
Im IFS Kit sind doch Samples drin. Ist da nichts für dich dabei?
Geschrieben

Hallo Klotzkopp,

sorry, mein Fehler. Grund ist, daß ich aus Verschwiegenheitspflicht das eigentliche Aufgabenziel der Anwendung nicht mitteilen darf. Da jedoch "Bubble" nach der Aufgabe der Anwendung fragte, nannte ich Back-Up-Funktion, weil dies der eigentlichen Aufgabe schon nahe kommt; so schrieb ich auf die Schnelle; -Fehlgriff. Doch es ist definitiv NICHT Datenspiegelung; RAID-1 wäre da natürlich bestens geeignet; ...und Back-Up ist es auch nicht. Nochmals sorry. :rolleyes:

Um das also wieder richtig zu stellen!: Die Anwendung benötigt nach wie vor Information darüber, welche Dateien/Order auf einem System erstellt, verändert oder gelöscht werden, so z.Bsp. im Sinne einer Protokollierung, welche Dateien oder Verzeichnisstrukturen verändert werden. UND diese Informationen benötigt die Anwendung unverzüglich, - deshalb auch "~echtzeit".

Ich bin Dir sehr dankbar für deine Ansätze und den Infos der anderen.

Welchen Ansatz würdest DU für die Protokollierung etwaiger Änderungen an der Verzeichnisstruktur wählen?

Geschrieben
Welchen Ansatz würdest DU für die Protokollierung etwaiger Änderungen an der Verzeichnisstruktur wählen?

Ich würde davon ausgehen, dass Mark Russinovich wusste, was er tat, als er FileMon geschrieben hat, und etwas ähnliches versuchen.

Immerhin steht da grob beschrieben, wie das Programm funktioniert. Es könnte aber sein, dass du für Vista einen anderen Ansatz brauchst. Leider steht beim Process Monitor gar nicht, wie er funktioniert.

Ins Sysinternals-Forum würde ich auch mal reinschauen.

Geschrieben
Grund ist, daß ich aus Verschwiegenheitspflicht das eigentliche Aufgabenziel der Anwendung nicht mitteilen darf.

Das ist ein schlechter Ansatz, wenn man Hilfestellung sucht. Ohne zu wissen, was Du tatsächlich möchtest, können wir Dir nicht richtig helfen.

Willst Du ein Tool wie "FileMon" entwickeln?

Win95/98 (sollte), XP (muss), Vista (muss)

Nur für die 32 Bit Versionen von XP und Vista? Oder auch für die 64 Bit Versionen?

...suche noch immer eingehenden Referenzcode für Ansatz 1.

Link: File System Filter Drivers

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...