AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

USB-Speicher identifizieren

Ein Thema von Kasoft · begonnen am 6. Mai 2004 · letzter Beitrag vom 6. Mär 2009
Antwort Antwort
Seite 1 von 7  1 23     Letzte » 
Kasoft

Registriert seit: 5. Mai 2004
Ort: Filderstadt
111 Beiträge
 
Delphi 7 Professional
 
#1

USB-Speicher identifizieren

  Alt 6. Mai 2004, 14:51
Hallo,

Wie kann man eine ProductID (eine Art Mac Adresse) aus einem USB-Stick auslesen?
Ich habe nun verschiedene Sachen ausprobiert um einen Stick eindeutig zu identifizieren
aber irgendwie fahr ich da jedes mal aus neue gegen eine Wand (namens Unwissenheit).
Und gibt es überhaupt Hardwareinformationen, zu den Sticks, die eindeutig sind?
Die USBstor.pas von Andrej Sandorf hab ich schon benutzt (veränderter JvHidControllerClass.PAS
von Robert Marquardt). Der liefert mir auch einiges an Information aber eine eindeutige
Nummer hab ich nicht erkennen können. Ich dachte das ich hier über DevicePath auf etwas komme
aber auch das war leider ein Griff in Klo...
Vielen Dank für eure Hilfe.

MfG
Kasoft

<--- Jetzt weiss ich wie ich auf "Gegen die Wand fahren" komme
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: USB-Speicher identifizieren

  Alt 6. Mai 2004, 18:04
Hallo KaSoft,

warum bleibst Du nicht bei einem Thread?
Wenn Du Dich mit den Parametern von DevEject auseinadergesetzt hättest, würdest
Du nicht diese Frage stellen.
  Mit Zitat antworten Zitat
Kasoft

Registriert seit: 5. Mai 2004
Ort: Filderstadt
111 Beiträge
 
Delphi 7 Professional
 
#3

Re: USB-Speicher identifizieren

  Alt 6. Mai 2004, 23:32
Sollte ich einen Fehler gemacht haben möchte ich mich hier entschuldigen.
Aber ich denke das 1 Frage pro Thread gelöst wird und deswegen habe ich einen
neuen Thread eröffnet.
Mit den Parametern von DevEject habe ich mich beschäftigt aber nichts brauchbares
gefunden. Eine eindeutige ID habe ich nicht gefunden. Sollte ich da falsch liegen
bitte korrigier mich.
Ich nehme mal die relevante Zeile aus deveject:
'USB-Massenspeichergerõt' 'USB\VID_054C&PID_008B\6&2A6BBF53&0&1' [REMOVEABLE]
Ich weiss nicht was du meinst hier eine eindeutige ID zu sein. 'USB\VID_054C&PID_008B\6&2A6BBF53&0&1' ist jedenfalls keine da diese ID sich beim
Einstecken in einen anderen USB-Slot ändert. Somit kann ich meinen Stick nicht eindeutig
zuordnen... Wie gesagt wenn ich falsch liege korrigier mich bitte.

MfG
Kasoft
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: USB-Speicher identifizieren

  Alt 7. Mai 2004, 08:14
Du musst die vierstellige VID und PID extrahieren.
Achtung, das Format der vier Stellen ist nicht immer Hexziffern.
Manchmal ist es auch '0' + Hexwert was z. B. '=' ergeben kann.

USB-Sticks muessen einen SerialNumber-String haben.
VID/PID/SerialNumber identifiziert daher eindeutig einen bestimmten Stick.
Ich bin noch am Erforschen wie man die SerialNumber ausliest.
  Mit Zitat antworten Zitat
Kasoft

Registriert seit: 5. Mai 2004
Ort: Filderstadt
111 Beiträge
 
Delphi 7 Professional
 
#5

Re: USB-Speicher identifizieren

  Alt 7. Mai 2004, 11:13
Hallo Robert darf ich das dann so verstehen das du die PID und VID auslesen
kannst? (Über Delphi) Den einzigen String den ich herauskriege ist:
\\?\usbstor#disk&ven_sony&prod_storage_media&rev_1 .00#7&1ce25073&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}

Aus diesem kann man einiges auslesen. Jedoch sehe ich hier keine PID/VID.

MfG
Kasoft
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: USB-Speicher identifizieren

  Alt 7. Mai 2004, 15:50
Hallo miteinander,

mit der ID ist das so ein Ding, aber eigentlich auch ganz einfach.
Die Frage stammt vermutlich daher, dass der Artikel von Herrn Withopf
aus der C't nicht vorliegt, dort wurde alles erklärt.

Also um Dein Beispiel zu nehmen verhält es sich so:

USB Ein USB-Device
VID_054C Die Hersteller-ID
PID_008B Die Gerätekennung / -typ
6
2A6BBF53 Die Geräteidentifizierung ID
0
1 Die Instanz, d.h wird incrementiert sobald das Gerät
an einem anderen USB-Port angesteckt wurde

Wo für die 6 und die 0 steht, weis ich jetzt nicht. Ich suche es mal
raus...
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: USB-Speicher identifizieren

  Alt 7. Mai 2004, 15:50
Aus diesem String muss man extrahieren.
'USB\VID_054C&PID_008B\6&2A6BBF53&0&1'

Die Gemeinheit ist das ein USB Stick in mehreren Geraetelisten auftaucht.
USB bzw USBSTOR naemlich.
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: USB-Speicher identifizieren

  Alt 7. Mai 2004, 18:30
Kleiner Wiederspruch, laut Registry-Eintrag bei 'Service' kann je Geräte nur 'USBSTOR' oder etwas anderes stehen.
Oder etwa nicht? Ich kenn jedenfalls kein USB-Device welches mehrere Services bindet.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#9

Re: USB-Speicher identifizieren

  Alt 7. Mai 2004, 18:37
Mit Geraetelisten meine ich die internen Listen des Systems.

Es sind mehrere Treiber uebereinandergestapelt.
Wie der Geraetemanager diese Ueberschneidungen filtert weiss ich leider noch nicht.
Es ist aber definitiv moeglich einen USB-Stick mit der USB GUID aufzuzaehlen.
Genauso kann man ein HID-Geraet mit der HID GUID aufzaehlen und mit der USB GUID.
Das liegt daran das der HID-Treiberstack oberhalb des USB-Treiberstacks fuer das Geraet liegt.
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: USB-Speicher identifizieren

  Alt 7. Mai 2004, 18:45
So nun ist mir wieder alles klar, was die 6 und die 1 betrifft.
Die 6 ist Bestandteil der GeräteID, also 6&2A6BBF53. Die 1 besagt,
das dass USB-Gerät ein Laufwerk bereitstellt. Mein Cardreader hat
eine 2 und bietet auch zwei Laufwerke an. Kontrollieren kann man
es in der Registry unter 'HKey_Local_Machine\Enum\USB\Vid_xxx&Pidxxx\Device ID + &lfd.nr',
je vorhandenem Laufwerk erhöht sich die lfd.nr = Laufendenummer.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz