Alle Laufwerksbuchstaben zu allen physikalischen Datenträgern ermitteln ?



  • Hallo, wer kann mir bitte helfen ?

    Hier Spezial-Problem, an dem ich mir schon längere Zeit den Kopf zerbreche (-:

    Mit der API-Funktion SetupDiEnumDeviceInterfaces() können alle im System aktiven Festplatten/Devices ermittelt werden. Über SetupDiGetDeviceInterfaceDetail() bekomme ich dann einen Device-Namen im "Klartext", mit dem ich dann das Device mit CreateFile() öffnen kann.

    Dieser Device-Name ist von der Struktur wie z.B.
    \?\scsi#disk&vendor-string&production-string0&revisionsnummer#adapter-nummer#{GUID}

    Jetzt meine Frage: Kennt jemand eine (irgendeine aber eindeutige) Möglichkeit, um von diesem Device-Namen auf alle - im aktuellen System vergebenen - zugehörige(n) Laufwerksbuchstaben (C:, 😨 ...) zu kommen, damit ich ermitteln kann, welche Festplatte welche Laufwerksbuchstaben belegt?

    Ich weiss, es gibt auch eine "leichtere" Möglichkeiten, um alle Laufwerksbuchstaben zu abzufragen, z.B. mit GetLogicalDrives()...

    Wichtig ist, dass ich, ausgehend von dem Festplatten-Namen mit der Struktur (\?\scsi#disk&vendor-string&production-string0&revisionsnummer#adapter-nummer#{GUID}), auf die Laufwerksbuchstaben schließe.

    Wer kann mir bitte helfen?



  • intercoder schrieb:

    Ich weiss, es gibt auch eine "leichtere" Möglichkeiten, um alle Laufwerksbuchstaben zu abzufragen, z.B. mit GetLogicalDrives()...

    Tachchen,
    also emmm...warum machst dir dann schwer, wenns auch einfacher geht ?!??

    MfG CodeFinder



  • ich mach's mir "unnötig" schwer, weil ich unbedingt die Zuordnung der einzelnen Devices an einen bestimmten Adapter brauche. Erst wenn eine Festplatte an einem bestimmten Adapter eingeschaltet wird, möchte ich dieses "Ereignis" auswerten und dann den von dieser Festplatte gelieferten Laufwerksbuchstaben ermitteln (oder gffs. auch mehrere)

    wer kann helfen?



  • Ja genau das gleiche habe ich auch vor. Ich möchte eine DB-Anwendung schreiben, welche die Daten auf Wechselplatten schreibt. Dafür muss ich auch den Laufwerksbuchstaben der Festplatte an einem bestimmten Adapter ermitteln.
    Wenn man bei Windows in der Computerverwaltung unter Datenträgerverwaltung nachschaut klappt das ja dort auch. Also muss es einen Weg geben. 😉

    Wer also weiß wies geht bitte melden.

    bye Saxony



  • WMI mit Win32_DiskDrive liefert Dir alle physikalischen Platten...



  • Win32_DiskDrive hört sich gut an, obwohl der Aufruf und die interne Auswertung viel Zeit kostet, denke ich?

    Darf ich fragen, wo ich eine gute Win32-API-Musterapplikation in C++ für WMI mit Win32_DiskDrive finden kann?



  • für alle, die noch nicht fündig geworden sind, microsoft selber bietet eine beispielanwendung unter

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/example__getting_wmi_data_from_the_local_computer.asp


Anmelden zum Antworten