Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# USB-Stick "sicher entfernen" (unmount)... (https://www.delphipraxis.net/76213-usb-stick-sicher-entfernen-unmount.html)

Markus 31. Aug 2006 14:31


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?

CK_CK 1. Sep 2006 16:59

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

OregonGhost 1. Sep 2006 17:33

Re: USB-Stick "sicher entfernen" (unmount)...
 
Eine A9-Suche führt zu diesem Artikel. Ist das vielleicht schon, was ihr beide sucht?

Markus 1. Sep 2006 17:44

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.

OregonGhost 1. Sep 2006 17:47

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.

Markus 1. Sep 2006 21:00

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...

MagicAndre1981 1. Sep 2006 21:45

Re: USB-Stick "sicher entfernen" (unmount)...
 
Hi,

schau mal hier: http://www.codeproject.com/useritems/usbeject.asp :zwinker:

Markus 2. Sep 2006 09:01

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