Entwickler-Ecke
Windows API - Erkennen ob eine Partition geändert wurde.
mindtrap - Mo 27.07.09 17:06
Titel: Erkennen ob eine Partition geändert wurde.
Hallo,
meine Frage ist relativ "einfach".
Gibt es eine Methode, mit der ich erkennen kann, ob eine Partition sich verändert hat.
Will heißen, wenn z.B. eine Partition formatiert wurde etc.
MfG
mindtrap
R4id - Mo 27.07.09 17:11
Belegter Speicher und Freier Speicher
mindtrap - Mo 27.07.09 17:37
Scheint, als hätte ich mich missverständlich ausgedrückt. :?
WM_DEVICECHANGE ist mein Schlagwort in diesem Fall.
Mit den Informationen, die man normalerweise erhält kann man einiges anfangen.
So z.B. auch erkennen, dass ein Volumen (gelöscht oder) neu angelegt wurde.
Mein Problem ist, dass ich zwar mit DBT_DEVICEARRIVAL feststellen kann, dass ein Volumen angelegt wurde,
aber:
Wenn ich sofort die Partitionsinformationen (Dateisystem, Freier Speicher, DiskExtents, Partitionsinformationen, Bitmap, etc.) abrufen möchte, bekomme ich ein Problem, wenn das Volumen gerade formatiert wird.
Kurz: Ich bekomme keine vernünftigen Daten.
(Passiert z.B. wenn man über diskmgmt.msc eine Partition löscht und wieder anlegt...)
Gibt es ein anderes Event (so etwas ähnliches wie DBT_DEVICEREMOVECOMPLETE nur eben für arrival :wink:), auf das ich reagieren kann?
Ich möchte eigentlich ungern das Volumen per Hand überwachen müssen.
MfG
mindtrap
BenBE - Di 28.07.09 11:51
Was willst Du konkret denn anstellen mit der Info?
mindtrap - Di 28.07.09 13:05
Ich überwache in meinem Programm Zustände von Partitionen und Platten zur Protokollierung.
BenBE - Di 28.07.09 13:10
hmmm, dann schau mal während der WM_DEVICECHANGE-Nachricht in die WMI, was er dort meldet. Dort sollte ja auch was bzgl. Formatierung usw. stehen.
Ansonsten ist ja schon allein ein Fehler beim Zugriff "Protokollwürdig" ;-)
mindtrap - Mi 29.07.09 03:10
Es geht weniger um die Frage, ob es protokollwürdig ist oder nicht, sondern eher darum,
dass der Benutzer im laufenden Betrieb angezeigt bekommen soll, wenn sich die Partitionsinformationen
verändert haben.
Mit DBT_DEVICEARRIVAL kann ich nur feststellen, ob ein Volumen entfernt oder hinzugefügt wurde.
Sollte z.B. das Volumen mit FAT formatiert sein und wird dann auf NTFS umformatiert, bekomme ich das
nicht mit.
Um die Informationen abzurufen öffne ich kurz ein Handle zum Volumen und schließe es wieder,
damit andere Prozesse damit weiterhin machen können, was sie wollen.
Ich will nur eben mitbekommen, dass sie was verändern. :D
BenBE - Mi 29.07.09 07:41
Die WMI hat für viele Ereignisse Notifications; schau da mal nach, vielleicht findet sich da ja was für die Partitionsgeschichten.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!