DeviceNamen ermitteln
-
Hi ich schreibe mir gerade eine Anwendung zum "eleganten" Auswerfen von UsbDevices. Die Anwendung funktioniert bereits recht gut, aber es fehlt noch ein Feinschliff:
Wenn ich ein Device an das System anschließe, dann will ich den "Hardwarenamen" haben.
Ich weiß, daß ich die Namen auch in der Registry unter:
HKLM/System/CurrentControlSet/Enum/USBSTOR/..
finden kann.
Aber die verbergen sich ja noch hinter systemgenerierten Zahlen.
Ich gehe bislang wie folgt vor:
- Ich fange die Nachricht WM_DEVICECHANGE ab.
- Aus dem lParam kann ich dann ja ermitteln was für ein Device es ist
- Dann ermittel ich den zugewiesenen Laufwerksbuchstaben aus der DEV_BROADCAST_VOLUME Struktur.
- Dann bestimme ich ob er der DriveType mit DRIVE_REMOVABLE übereinstimmt.
- Danach hole ich mir mit GetVolumeInformation() noch die Serial und den Namen.Damit habe ich dann aber leider nur den Datenträgernamen. Ich hätte aber gerne den DeviceNamen. Gibt es dazu noch einen Aufruf, den ich einfach nicht finde?
Für einen Stoß in die richtige Richtung wäre ich sehr dankbar, da ich schon einige Tage nach einer Lösung suche.