![]() |
USB-Stick "sicher entfernen" (unmount)...
Hallo,
ich hätte eine Frage: und zwar wie kann ich anhand eines Laufwerksbuchstabens einen USB-Stick deakvieren (also wie durch einen Klick auf "Hardware sicher entfernen")? Ich lese schon stundenlang in der Win32-Api (CM_Request_Device_Eject, ...), aber ich komme einfach nicht weiter. Mein momentanes Problem ist, wie ich anhand des Laufwerksbuchstabens die devInst des Stick herausbekommen kann. Kennt sich da jemand aus? |
Re: USB-Stick "sicher entfernen" (unmount)...
*PUSH*
Ich bin auch auf der Suche nach einem solchen Code... (zwar für Win32Delphi, aber ein Ansatz wäre auch schon gut :thumb:) Viele Grüße, Chris |
Re: USB-Stick "sicher entfernen" (unmount)...
Eine A9-Suche führt zu
![]() |
Re: USB-Stick "sicher entfernen" (unmount)...
So hab ichs prinzipiell inzwischen gemacht, aber ich kann euch sagen, es ist die HÖLLE! Es funkioniert noch nicht komplett (hab noch ein paar Probleme mit den Instance-IDs), aber ich habs fast fertig.
|
Re: USB-Stick "sicher entfernen" (unmount)...
Dass es die Hölle ist, kann ich bestätigen, ich habe mal ein Programm geschrieben, dass nichts weiter können sollte, als die serielle Schnittstelle des Mainboards zu deinstallieren und stattdessen 8 zusätzliche serielle Schnittstellen zu installieren... Natürlich keine schönen PnP-Dinger, sondern ein PC104-Bus :stupid:
Was Instance-ID-Probleme angeht, mit WMI ließen sich solche strukturellen Dinge relativ angenehm auslesen. |
Re: USB-Stick "sicher entfernen" (unmount)...
Was an diesen dummen devInsts das Problem ist, ist, dass sie von anderen Funktionen abhängen. Z.B. die Funktion CM_Get_Parent gibt für gleich Eingabewerte immer verschiedene IDs aus, da man vorher mittels anderer Funktionen anscheinend Parameter setzen muss. Leider ist das nicht richtig dokumentiert im MSDN...
|
Re: USB-Stick "sicher entfernen" (unmount)...
|
Re: USB-Stick "sicher entfernen" (unmount)...
An das hab ich mich gehalten, aber versuch mal, den Code nachzuvollziehen!! Das ist genauso schlimm! V.a. werden da extrem vielen Sachen mittels Properties gemacht (also mit set und get), und das macht es extrem unübersichtlich!
Ach ja, und problematisch sind natürlich auch die Pointer, denn damit kann man in C# nicht so ohne weiteres arbeiten (ich arbeite zwar schon unmanaged und unsafe), aber z.B. einen Pointer eines Typs erstellen, ohne jedoch den Typ selbst zu erstellen :-) is etwas umständlich (geht aber mittels Marshal.AllocHSpace() ) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz