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/)
-   -   Delphi USB Stick / VendorID und ProductID (https://www.delphipraxis.net/23696-usb-stick-vendorid-und-productid.html)

GoTo0815 8. Jun 2004 11:01


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

franktron 8. Jun 2004 11:04

Re: USB Stick / VendorID und ProductID
 
Such doch mal hier im Forum da hat ltz einer genau diese Frage gestellet :-D :dp:

GoTo0815 8. Jun 2004 11:15

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

Luckie 8. Jun 2004 11:27

Re: USB Stick / VendorID und ProductID
 
Zitat:

Zitat von HendrikSturm
Ich habe nämlich bereits gesucht und den nicht gefunden.

Kan nich eigentlich nicht glauben. Eine Forensuche nach Hier im Forum suchenUSB bringt ziemlich viele Treffer. Man muss ich natürlich mal die Mühe machen und in die Threads reinkucken.

GoTo0815 8. Jun 2004 12:08

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.

Kasoft 8. Jun 2004 12:09

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

Robert Marquardt 8. Jun 2004 13:11

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?

Kasoft 8. Jun 2004 13:32

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

Hier vielleicht noch die Daten von USBView zu meinem USB-Stick:
Code:
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
Ich lass mich gerne des besseren belehren das es doch eins hat.

MfG
Kasoft

GoTo0815 8. Jun 2004 14:01

Re: USB Stick / VendorID und ProductID
 
Das wird mir bei einer anderen Soft in Delphi ausgegeben:

http://www.impensa.de/bilder/USB-DEVICE.JPG

Gruß

Hendrik

GoTo0815 8. Jun 2004 14:03

Re: USB Stick / VendorID und ProductID
 
Da steht scheinbar nix in der Serial für den USB Stick.

Kasoft 8. Jun 2004 14:28

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

Sharky 8. Jun 2004 14:31

Re: USB Stick / VendorID und ProductID
 
Zitat:

Zitat von HendrikSturm
....Also nächstes mal vielleicht erst überlegen und dann posten.....

Hai Hendrik,

ich bitte Dich darum deine Wortwahl und dein Verhalten anderen Forenmitgliedern gegenüber zu überdenken und dem hier üblichen guten Ton anzupassen. Danke.

GoTo0815 8. Jun 2004 14:32

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

Kasoft 8. Jun 2004 15:21

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

GoTo0815 8. Jun 2004 16:20

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

Robert Marquardt 8. Jun 2004 17:28

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.

Kasoft 8. Jun 2004 18:49

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

Robert Marquardt 9. Jun 2004 05:16

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.

Kasoft 9. Jun 2004 09:04

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

Robert Marquardt 9. Jun 2004 17:11

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.

Kasoft 9. Jun 2004 19:17

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

Robert Marquardt 10. Jun 2004 05:33

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:

Using what kind of system call? There is no single driver that's
guaranteed to be in every device stack above the function driver and
responding to IOCTL requests. I don't think there's any way to convert
an arbitrary file handle into a SetupDiXxx info handle in order to query
the device properties. I think you are basically SOL here, which makes
sense because there's nothing about a handle that ties it to the USB
bus.

Kasoft 10. Jun 2004 14:25

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

GoTo0815 10. Jun 2004 15:08

Re: USB Stick / VendorID und ProductID
 
Halt mich bitte auf dem laufenden.

Gruß

Hendrik


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 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