![]() |
USB Stick / VendorID und ProductID
Hallo,
ich bin schon lange auf der suche nach ner einfachen Funktion, wie ich die VendorID und die ProductID von meinem USB Stick unter Delphi auslesen kann. Am liebsten wäre mir ja sogar die eindeutige Serial, die da irgendwo versteckt ist. (Für alle die jetzt an sowas wie GetVolumeInformation denken: Dabei handelt es sich um keine wirklich eindeutige Serial, sie wird von Windows erstellt wenn man den Stick formatiert) Über Hilfe wäre ich sehr dankbar Wichtig ist, dass das relativ kurz und einfach geht. Gruß Hendrik |
Re: USB Stick / VendorID und ProductID
Such doch mal hier im Forum da hat ltz einer genau diese Frage gestellet :-D :dp:
|
Re: USB Stick / VendorID und ProductID
Wärest Du so freundlich und sagst mir den genauen Thread??
Ich habe nämlich bereits gesucht und den nicht gefunden. Gruß Hendrik |
Re: USB Stick / VendorID und ProductID
Zitat:
![]() |
Re: USB Stick / VendorID und ProductID
Wer nix weiss sollte eigentlich auch nichts sagen!!
Ich suche seit zwei Wochen nach einem gescheiten Thread. Ich bin echt ein wenig ungehalten. Können nich einfach solche Leute was posten, die ne Ahnung von der Materie haben?? Bist Du wirklich der Meinung, dass ich nicht auf die Idee gekommen bin in die einzelnen Threads reinzuschauen?? Wenn Du das getan hättest, dann hättest Du gemerkt, dass da überall mein Name auftaucht. Also nächstes mal vielleicht erst überlegen und dann posten. Ich habe einen neuen Thread aufgemacht, weil ich darum gebeten wurde, dass nicht in den anderen Threads zu tun, damit das nicht zu sehr vom Thema ablenkt. Gruß Hendrik P.S.: Über ein paar Antworten zu meiner einstigen Frage würde ich mich sehr freuen. |
Re: USB Stick / VendorID und ProductID
Hallo Hendrik,
ich probiers kurz und schmerzlos zu erklären. Die Produkt-ID + Vendor-ID ist relativ einfach aus der Registry auszulesen. Eine eindeutige ID kannst du imho vergessen da sich die USB-Stick hersteller nicht an die von MS definierten Standards nicht halten. Nach MS muss ein USB Stick eine iSerialnumber + vendorid + productid beinhalten. Aus meiner Erfahrung kann ich dir aber sagen das dies nicht der Fall ist. Das sich Noname Hersteller an diese Standards nicht halten hätte ich mir sogar vorstellen können. Aber Sony + Logitech (für Maus Tastatur etc) halten sich auch nicht daran. Sprich eine eindeutige Identifizierung ist somit nicht ohne weiteres möglich. Wenn du mir sagst wofür du das brauchst könnte ich dir eventuell helfen. Schreib mich per PM an. Die Aussagen sind ohne Gewähr und ich lasse mich gerne des Besseren belehren. Franktron und Lucky haben recht. Ich hab einen Thread zu diesem Thema gehabt. Hieß glaub ich "USBStick eindeutig identifizieren" glaub ich. Such einfach mal danach. MfG Kasoft P.S.: Irgendwo muss ein Link zu USBView, ein Tool zum auslesen von Informationen von Microsoft, existieren. Such mal danach. Da kannst du auch gleich sehen ob bei dir iSerialNumber gesetzt ist |
Re: USB Stick / VendorID und ProductID
Das ist mir neu das die Serienmummer bei USB Sticks nicht da sein soll.
Ohne die will Windows den Stick nicht akzeptieren und eine Vermarktung sollte damit unmoeglich sein. Mause und Tastaturen brauchen keine Seriennummer. Es gibt unter Windows eh nur eine Maus und Tastatur (die virtuelle naemlich). Warum sollte der Hersteller sich dann die Muehe einer Seriennummer machen? |
Re: USB Stick / VendorID und ProductID
Hi Robert,
Das einzige mir bekannte Tool, dass die iSerialNumber auslesen kann, ist USBView. Wenn ich USBView anschmeiße und die Daten anschaue sehe ich das iSerialNumber auf 0x00 gesetzt ist. Ich habs inzwischen auf 3 verschiedenen Sticks versucht und diese waren nicht gesetzt. Infos zum USB Descriptor fand ich bei ![]() Hier vielleicht noch die Daten von USBView zu meinem USB-Stick:
Code:
Ich lass mich gerne des besseren belehren das es doch eins hat.
Device Descriptor:
bcdUSB: 0x0110 bDeviceClass: 0x00 bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x08 (8) idVendor: 0x090A idProduct: 0x1001 bcdDevice: 0x0100 iManufacturer: 0x00 iProduct: 0x00 iSerialNumber: 0x00 <----- ist doch der Index der auf die Seriennummer des USB-Sticks zeigt??? bNumConfigurations: 0x01 ConnectionStatus: DeviceConnected Current Config Value: 0x01 Device Bus Speed: Full Device Address: 0x02 Open Pipes: 3 Endpoint Descriptor: bEndpointAddress: 0x81 Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00 Endpoint Descriptor: bEndpointAddress: 0x02 Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00 Endpoint Descriptor: bEndpointAddress: 0x83 Transfer Type: Interrupt wMaxPacketSize: 0x0008 (8) bInterval: 0xFF MfG Kasoft |
Re: USB Stick / VendorID und ProductID
Das wird mir bei einer anderen Soft in Delphi ausgegeben:
![]() Gruß Hendrik |
Re: USB Stick / VendorID und ProductID
Da steht scheinbar nix in der Serial für den USB Stick.
|
Re: USB Stick / VendorID und ProductID
Genau das war das Programm das ich auch hatte! Ich glaub das war von SCR auf der
Assarbad Seite gehostet... Und auch der hat mir nichts angezeigt... |
Re: USB Stick / VendorID und ProductID
Zitat:
ich bitte Dich darum deine Wortwahl und dein Verhalten anderen Forenmitgliedern gegenüber zu überdenken und dem hier üblichen guten Ton anzupassen. Danke. |
Re: USB Stick / VendorID und ProductID
Aber vielleicht schausst Du Dir noch mal die Sources an und erklärst mir das ein wenig :-)
Gruß Hendrik |
Re: USB Stick / VendorID und ProductID
Der DeviceListe benutzt die SetupApi Conversion von Robert. Soviel kann ich dazu sagen.
Ich selber hab mich da noch nicht eingelesen da ich nicht soviel aus der setupapi.dll gebraucht hab. Ich werd mir vielleicht (wenn ich es schaff mich in den Code einzulesen) die wichtigen Punkte rauszuextrahieren...Aber dafür ist im Moment zu schönes Wetter. Da fehlt einfach die Motivation... An sich schau dir den Code an und schau wie er den Descriptor ausliest. Ich werds auch machen aber in undefinierbarer Zeit... MfG Kasoft |
Re: USB Stick / VendorID und ProductID
Lass Dir Zeit :cheers: ich kann das verstehen mit dem Wetter :dancer2:. Aber wäre vielleicht an einem Regentag mal was :drunken: .
Hoffnung |
Re: USB Stick / VendorID und ProductID
Ich bin jetzt ein bischen verwirrt, da ich auf usb.org eben dauernd hoere USB Sticks brauchen Seriennummern (und auch noch in einem bestimmten Format).
"iSerialNumber: 0x00" ist aber moeglicherweise nicht aussagekraeftig, da bDeviceClass und folgende auch 0 sind. Das sollte wohl nicht sein. Ueber den Ton mache ich mir keinen Kopf. Ich habe auch schon danebengegriffen. Ich werkele uebrigens an einem Update der Setup API Conversion (im Rahmen der JVCL). Da habe ich damals nicht die richtige Version des Files erwischt und es fehlen ein paar Konstanten und Funktionen, die in XP dazugekommen sind. Im Augenblick ueberlege ich wie die sehr unterschiedlichen Versionen der SetupApi.dll in den Griff zu bekommen sind. |
Re: USB Stick / VendorID und ProductID
Hi Robert,
Ich sag nur du Chef ich nix. ;-) Nein Spaß beiseite. Ich hätte es auch lieber wenn USB-Sticks eindeutig idetifizierbar wären und ich hoffe das ich falsch liege. Hab mal in der MSDN Library bisschen rumgelesen und auch ein Hardware Engineering Dokument gefunden und teils angelesen. Im USB Teil stand dann auch explizit drin das einem USB-Massenspeicher(!) iSerialnumber vergeben werden muss! Soweit ist das dann auch in Ordnung und niemand hat einwände. Ich frei mich und stink vor mich hin. Bloß was nützt mir die Dokumentation wann ich das in der Praxis nicht auslesen kann. USBView ist von Microsoft aber eben aus dem Jahr 1998. Eigentlich zu den Anfangszeiten des Microsoft aus USB-Miteinsteig Zeitalters. Sprich damals war USBView nicht für NT Systeme konzipiert (WINNT 4 und Usb??? Näähhhh) Also tröste ich mich einfach damit das die Software auf Win2k und / oder WinXP nicht voll funktionstüchtig läuft. Na dann ich hoff hier wird mal was. Ich will nicht im hohen Alter sterben und dann denken: "Das mit sSerialnumber hab ich net hingekriegt..." Bin mal auf der Suche nach mehr info. MfG Kasoft |
Re: USB Stick / VendorID und ProductID
USBView ist immer noch ein Beispiel im Windows DDK.
Der wesentlichste Unterschied in der neuen Version ist das die Host Controller nicht mehr mit direkten Pfadnamen '\\.\HCD0' ... aufgezaehlt werden sondern via GUID und SetupDi-Funktionen. |
Re: USB Stick / VendorID und ProductID
Hi Robert,
ich glaub es sind kaum noch irgendwelche Seiten in Google drin welche sich mit USB beschäftigen die ich jetzt nicht gelesen hab. Wenn das so weitergeht darf Google bald anfragen zu USB direkt auf mein Hirn verzweigen. Und immernoch fehlt mir eine Möglichkeit die iSerialnumber auszulesen. Ich versteh das nicht. Überall steht drin das die iSerialNumber gesetzt sein muss (USB-Speicher) aber nirgendwo finde ich eine Möglichkeit diese auch auszulesen. Das muss doch gehen. Wenn Windows es auselesen kann um Zugriffe zu managen dann müssen wir doch irgendwie die Möglichkeit haben da drauf zu kommen. Wenn es echt nicht möglich sein sollte dann sagt mir das doch bitte ich werd sonst noch blöd mit der Geschichte. Das lässt mich echt nicht in Ruh. Ich träum schon Nachts von dem blöden Ding... MfG Kasoft |
Re: USB Stick / VendorID und ProductID
Ich stell mal eine Frage in der Driver Newsgroup bei Microsoft.
Ich find es ja auch ziemlich schwachsinnig das man zwar das USB-Device enumerieren kann und einen Handle drauf oeffnen kann, aber darueber keine Basisinformationen wie VID, PID oder Strings abrufen kann. USBView fragt naemlich die Hubs (bzw den Hubtreiber) nach den Deskriptoren der angeschlossenen Devices. |
Re: USB Stick / VendorID und ProductID
Das wäre nett danke Robert,
Pid und Vid hab ich auch erst durch die Registry ausgelesen. Und das ist wirklich nicht die sauberste Art obwohl sie ja funktioniert :-) Aber wenn ein direktes auslesen möglich wäre wäre das natürlich Perfekt. MfG Kasoft |
Re: USB Stick / VendorID und ProductID
Und schon ist die Antwort da. Von Walter Oney dem Treiberexperten.
Leider ist die Antwort negativ. Es geht nicht. Zitat:
|
Re: USB Stick / VendorID und ProductID
Also sind wir wieder auf dem selben Stand wie vorher und wissen
das wir nichts wissen... Schade eigentlich. Dann werd ich wohl das ganze auf meine Weise machen müssen... MfG Kasoft |
Re: USB Stick / VendorID und ProductID
Halt mich bitte auf dem laufenden.
Gruß Hendrik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 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-2025 by Thomas Breitkreuz