Delphi-PRAXiS
Seite 4 von 7   « Erste     234 56     Letzte »    

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-Speicher identifizieren (https://www.delphipraxis.net/21676-usb-speicher-identifizieren.html)

GoTo0815 19. Mai 2004 10:44

Re: USB-Speicher identifizieren
 
Hallo, habe heute ne eMAil aus China bekommen von dem Hersteller meiner USB Sticks:

Zitat:

Dear Hendrik,

Thanks for your prompt reply , we do have serial number burned in the controller , but you can not read by yourself . We just keep it for warranty purpose .

If there is anything I can do for you , please let me know at first time .

Best Regards

Joan
Daraus folgt, dass da wirklich ne Serial drauf ist. Ein Kumpel von mir sagte mir aber,
dass dieser Code evtl. nur direkt vom Eprom gelesen werden kann.

Weiter habe ich ein tool gefunden mit dem man seine USB Ports auslesen kann ohne in die REG schauen zu müssen. IMPENSA

Ich glaube, dass mit der Hersteller ID wird nicht so einfach bis unmöglich. (Bitte belehrt mich eines besseren!!!!!)

Vielleicht findet jemand ja noch eine möglichkeit einen USB Stick eindeutig zu identifizieren.


Gruß

Hendrik

Alter Mann 19. Mai 2004 16:09

Re: USB-Speicher identifizieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

wer sucht der findet, heißt es oder? Es gibt eine Seriennummer, sogar eine unique :lol:
Aber nur :( wenn das Gerät sich mit dem Logo "Designed for Windows" schmücken darf.

Auf Storage - Architecture and Driver Support
ist eine FAQ zu USB Storage zu finden, wo die Frage nach der Seriennummer so beantwortet wurde:
Zitat:

Usbstor.sys and “Designed for Windows” Logo
Q: Must a USB storage device contain a unique serial number?
Yes. To comply with the USB Mass Storage Class Bulk-Only Transport Specification, all USB storage devices must contain a unique (12 digits or longer) serial number, represented as a UNICODE string. Refer to section 4.1.1 of the USB Mass Storage Class (Bulk-Only Transport) specification and note that serial number characters must be 0x0030-0x0039 or 0x0041-0x0046.

A unique serial number on a USB device maintains the same device devnode as a user moves the device from USB port to port. This unique devnode ensures that properties (icons, policies, driver letters, and so on) associated with the device are not reset when the device is moved to a new port or when a second device with the same VID/PID/REV is added to the system.

IHVs must ensure that a device’s serial number is unique in order for that device to comply with Windows operating systems (refer to Microsoft Windows Logo Program System and Device Requirements B2.6.3.1) and to pass WHQL certification. (HCT version 10.0, and later HCTs, will test the uniqueness of a serial number on any USB device if one is specified.)
Ich habe da auch ein MS-Prog gefunden die sie anzeigt, sofern vorhanden :?

Robert Marquardt 19. Mai 2004 17:17

Re: USB-Speicher identifizieren
 
In der Praxis heisst das das die Seriennummer IMMER vorhanden ist.
Niemand kann sich leisten das sein Stick nicht mit Windows funktioniert.
Das Tripel VendorID/ProductID/Seriennummer identifiziert daher einen USB Stick eindeutig.

Brüggendiek 19. Mai 2004 21:21

Re: USB-Speicher identifizieren
 
Hallo!

Also die beiden vorstehenden Aussagen sind Quatsch!

Zitat:

Zitat von Alter Mann
Aber nur :( wenn das Gerät sich mit dem Logo "Designed for Windows" schmücken darf.

Falsch - umgekehrt ist richtig! Wer das Logo anbringen will, muss eine Serien-Nummer draufhaben. Das heißt aber nicht, daß Sticks ohne Logo keine Nummer haben dürfen!

Zitat:

Zitat von Robert Marquardt
In der Praxis heisst das das die Seriennummer IMMER vorhanden ist.
Niemand kann sich leisten das sein Stick nicht mit Windows funktioniert.

Auch falsch! Das Logo besagt nur, daß gewisse Vorgaben von MS eingehalten wurden - hier z.B. die Serien-Nummer.
Es gibt z.B. genug Programme, die nicht das "Designed for Windows"-Logo haben, aber trotzdem mit Windows funktionieren. Mit Logo gehören die Einstellungen nämlich zwingend in die Registry - wer auf das Logo verzichtet, darf auch INI-Dateien verwenden.

Das Logo soll (durch Überprüfung bei MS) Kompatibilität garantieren (prüfen die eigentlich alles mit allem, um Kreuzprobleme auszuschliessen?) und kostet Geld. Deshalb verzichten viele auf das Logo. Noch dürfen ja auch Treiber ohne Test verwendet werden. Kommt nur eine Warnmeldung.

Gruß

Dietmar Brüggendiek

Kasoft 20. Mai 2004 10:52

Re: USB-Speicher identifizieren
 
Hallo,
nachdem ich nun einige Informationen über USB-Massenspeicher gelesen habe
und auch das Programm, welches alter Mann angesprochen hat ausprobiert habe
hier die Schelte:

Mein neuer Sony USB-Stick mit 128MB Speicher
Device Descriptor:

bcdUSB: 0x0200
bDeviceClass: 0x00
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x40 (64)
idVendor: 0x054C (Sony Corporation)
idProduct: 0x008B
bcdDevice: 0x0001
iManufacturer: 0x01
iProduct: 0x04
iSerialNumber: 0x00 <---- Warum um Gottes Willen muss das hier leer sein *grmmml*
bNumConfigurations: 0x01

Mein alter Noname Stick mit 64MB Speicher

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 <----- Und wieder einmal leer...
bNumConfigurations: 0x01

Was sehen wir? Eigentlich nur das Sony eben bekannt ist aber trotzdem unfähig
seinen Sticks eine eindeutige ID zu verpassen. Ich hoffe ihr gelehrt mich des
besseren und ich kann wieder weiterforschen...

MfG
geknickter Kasoft

Muetze1 20. Mai 2004 13:56

Re: USB-Speicher identifizieren
 
Moin!

Bei meinem USB Stick kommt folgendes raus:
Code:
Device Descriptor:
bcdUSB:            0x0110
bDeviceClass:        0x00
bDeviceSubClass:     0x00
bDeviceProtocol:     0x00
bMaxPacketSize0:     0x08 (8)
idVendor:          0x05DC
idProduct:         0x0080
bcdDevice:         0x0001
iManufacturer:       0x01
iProduct:            0x01
iSerialNumber:       0x02
bNumConfigurations:  0x01
Nur dabei frage ich mich, ob die Seriennummer wirklich nur ein Byte gross sein soll? Das ist doch dann keine Seriennummer sondern höchsten eine Produktfamilie. Also meiner hat dann ja eine Seriennummer von 2, super, und der 256. Stick der nach meinem hergestellt wurde hat wieder die gleiche Nummer???

-----------
So, ich habe nochmal weiter geforscht...

Logitech USB Maus vom Cordless Desktop: Seriennummer = 0x00
Acer BT500 Bluetooth Stick: Seriennummer = 0x00
USB Hub in meinem EYE-Q Monitor: Seriennummer = 0x00
USB HID im EYE-Q Monitor (zum Steuern des Monitors über USB): Seriennummer = 0x30
total billiger aber sehr gut funktionierener USB 6 in 1 Cardreader: Seriennummer = 0x03

MfG
Muetze1

DaFox 20. Mai 2004 14:15

Re: USB-Speicher identifizieren
 
Hi,

Zitat:

Zitat von Muetze1
Nur dabei frage ich mich, ob die Seriennummer wirklich nur ein Byte gross sein soll? Das ist doch dann keine Seriennummer sondern höchsten eine Produktfamilie. Also meiner hat dann ja eine Seriennummer von 2, super, und der 256. Stick der nach meinem hergestellt wurde hat wieder die gleiche Nummer???

Nein, Dein Stick hat nicht die Seriennummer 0x02, sondern die Seriennummer steckt im Stringdescriptor "Nummer 2".

Zitat:

Zitat von usb.org
iSerialNumber: Index of string descriptor describing the device’s serial number

Zu deutsch: Wenn Du den zweiten Stringdescriptor vom Gerät anforderst, erhältst Du den Stringdescriptor mit der Seriennummer!

Gruß,
Markus

Alter Mann 20. Mai 2004 17:02

Re: USB-Speicher identifizieren
 
Hi,

und das als Unicode! Sie ist hexadezimal-codiert und muss min. 12 Zeichen lang sein.

GoTo0815 22. Mai 2004 21:15

Re: USB-Speicher identifizieren
 
Hallo, und wie genau lese ich das nun mit Delphi aus???

Kann vielleicht einer von Euch einmal posten, wie ich nun unter Delphi an die Hersteller Seriennummer herankomme???


Das wäre super!


Gruß

Hendrik

100nF 9. Sep 2005 16:43

Re: USB-Speicher identifizieren
 
Zitat:

Hallo, und wie genau lese ich das nun mit Delphi aus???

Kann vielleicht einer von Euch einmal posten, wie ich nun unter Delphi an die Hersteller Seriennummer herankomme???
das hätte ich auch gerne...


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr.
Seite 4 von 7   « Erste     234 56     Letzte »    

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