USB Stick



  • Hallo Sovok,

    Wie Du selber den USB-Stick sauber entfernst, also quasi vom Programm aus denn Button "hardware sicher entfernen drückst" ist in der ct 16/2003 auf Seite 208 beschrieben. Dazu gibs auch eine Link:
    http://www.heise.de/ct/03/16/links/208.shtml
    Dort ist ein Beispielprogramm im Quelltext.
    Wie Du allerdings ein Veto gegen das Entfernen einlegst, kann ich Dir auch nicht sagen.

    Viel Spaß beim suchen und probieren.



  • gibts noch was anderes?
    der ct code is im bezug auf api aufrufe sehr undurchsichtig



  • Sovok schrieb:

    gibts noch was anderes?
    der ct code is im bezug auf api aufrufe sehr undurchsichtig

    Bist Du schon weitergekommen?

    Ich habe mich mal durch den Code gewühlt und habe es selbst nochmal geschrieben und es sogar hinbekommen.

    Ich nutze das Programm allerdings zum gezielten Auswerfen vor dem Abziehen des Sticks, da es ja auch zu Datenverlust führen kann, sofern der Stick sich noch im Schreibzugriff befindet.



  • der holt sich da doch irgendwelche funktionszeiger...
    hast du ne ahnung welchen apifunktionen die entsprechen
    vom namen her hab ich in keinem meiner sdks was gefunden



  • Sovok schrieb:

    der holt sich da doch irgendwelche funktionszeiger...
    hast du ne ahnung welchen apifunktionen die entsprechen
    vom namen her hab ich in keinem meiner sdks was gefunden

    Ja, Du brauchst dazu das Windows2k DDK oder halt die Header dazu.

    Der Autor von der CT-Version lädt sich die Methoden direkt aus der DLL.

    Die Methoden, die er verwendet stehen ja in seinem Code bei dem Aufruf von GetProcAddress().

    CM_Locate_DevNode()
    CM_Get_Child()
    CM_Get_Sibling()
    CM_Get_DevNode_Status()
    CM_Get_Device_ID_Size()
    CM_Get_Device_IDA()
    CM_Request_Device_Eject()

    Ich bin noch dabei einige Änderung an meiner Klasse vorzunehmen, dann werde ich sie auch gerne mal posten.



  • wo gibts das 2k ddk
    ich find bei ms nur n dx7 ddk und n paar w98/me ddk samples



  • Sovok schrieb:

    wo gibts das 2k ddk
    ich find bei ms nur n dx7 ddk und n paar w98/me ddk samples

    Früher konnte man sich das mal so herunterladen. Nun mußt Du es Dir von MS anfordern und bekommst es gegen Portobezahlung zugesandt wenn ich mich recht erinnere.

    Ich habe nochmal ne Frage zu WM_DEVICECHANGE:

    Ich habe die Message abgefangen und fülle auch die DEV_BROADCAST_HDR-Struktur, aber was kann ich damit machen? Wie bekomme ich dann den Namen des Devices?



  • du kannst den typ prüfen und es dann in die struktur des typs casten
    danach hast du dann den laufwerksbuchstabe



  • Sovok schrieb:

    du kannst den typ prüfen und es dann in die struktur des typs casten
    danach hast du dann den laufwerksbuchstabe

    Ja, das habe ich auch gerade gemerkt, nachdem ich von der MSDN auf die Platform SDK gewechselt habe.

    Habe nun nen DEV_BROADCAST_VOLUME-struct und da dann dbcv_unitmask von 8192 was ja 2^13 ist => Laufwerk N:

    Aber wie setze ich das geschickt um?
    Muß ich das dann zu fuß machen oder gibt es dafür ne schicke Methode.

    Und ich suche auch noch den Namen des Devices. Zum Beispiel in meinem Fall "USB-Massenspeicher" oder noch besser das ChildDevice "Q-MAX USB Flash Drive USB Device" davon.

    Dann wäre ich total happy 🙂



  • GetVolumeInformation

    das wichtigste is aber die seriennummer
    damit kannst du mehrere disks unterscheiden



  • Sovok schrieb:

    GetVolumeInformation

    das wichtigste is aber die seriennummer
    damit kannst du mehrere disks unterscheiden

    Damit bekomme ich zwar die Serial und den Laufwerksnamen, aber nicht den Devicenamen.

    Oder kann ich noch etwas mit der Serial machen?



  • ne für den devicenamen kenn ich keinen einfachen weg
    aber was anderes
    wo kann man denn das ddk bestellen?
    hab nur ne msdn subscriber seite gefunden
    oder mail mit einfach die libs und header .... ich brauchs ja eh nur für usb


Anmelden zum Antworten