CARDSPEED - Kartenleser und Speicherkarten

Ermitteln der ID eines USB-Kartenlesers

Alle USB-Kartenleser übermitteln eine ID mit Information zum Hersteller oder Vertreiber (Vendor ID: VID), dem Gerät selbst (Product ID: PID), sowie Versionsinformation. In vielen Fällen ist dies die ID des verwendeten Controller-Chips. Nur einige große Firmen verwenden ihre eigenen IDs, um die Herkunft "ihres" Produkts zu verbergen.

Was ist der Nutzen dieser ID?

Die Geschwindigkeit eines Kartenlesers wird hauptsächlich durch den verwendeten Controllerchip bestimmt. Manche Hersteller verwenden unterschiedliche Firmware-Versionen für den gleichen Controller, was die Geschwindigkeit und die Kompatibilität beeinflussen kann. Manchmal ist die Firmware im ROM gespeichert, was bedeutet, dass der Kartenleser die zum Produktionszeitpunkt aktuelle Firmware erhält. Wenn die Firmware in internem oder externem Flash gespeichert wird, und der Hersteller beschließt, das Flash-Programm und die Firmware-Dateien zu veröffentlichen, dann kann die Firmware vom Endanwender aktualisiert werden.

Die Beschreibung für Mac OS befindet sich weiter unten.

Ermitteln der IDs unter Windows XP

Der einfache und komfortable Weg ist das Herunterladen und Starten von   >>>  usbid.exe  <<<   (52kB). Dabei handelt es sich um eine "Win32 Console Application", die die IDs aus der Registry ausliest.

Es gab Bemerkungen, dass das Tool nicht funktionieren würde, und stattdessen nur ein kleines schwarzes Fenster geöffnet und geschlossen würde. Die aktuelle Version erwartet nun einen Tastendruck, und kann somit auch direkt unter Windows gestartet werden. Ich habe auch noch ein nettes 32x32 Pixel Icon und ein nicht so schönes 16x16 Pixel Icon hinzugefügt. Es verbleibt dann nur noch die Herausforderung, die Ausgabe in die Zwischenablage zu kopieren, wenn man die Information weitergeben möchte: Wenn der Quick Edit Modus noch nicht aktiviert ist, muss man die Titelleiste mit der rechten Maustaste klicken, und "Bearbeiten - Markieren" wählen. Danach kann mit der linken Maustaste ein Textbereich markiert werden, und die Markierung mit der rechten Maustaste bestätigt werden.

Startet man das Tool von der Eingabeaufforderung aus (auch als DOS-Box bekant), kann man mit einem beliebigen Parameter die Tastenabfrage umgehen. Der Standard-Text wird auf stderr geschrieben, die Daten werden auf stdout geschrieben. Mittels "usbid x 1>usbid.log", kann man zum Beispiel nur die Daten in eine Datei schreiben.

Manuelles Ermitteln der IDs

Der schwierigere und abenteuerlichere Weg, die IDs zu ermitteln führt über die Registry und die Eigenschaften der Laufwerke.

Ermitteln der USB ID

Das Ermitteln der USB ID ist eigenlich einfach. Man muss lediglich "regedit.exe" ausführen, und zu folgendem Eintrag navigieren:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Enum

Regedit USBSTOR Eintrag

Dort sollte ein REG_SZ Eintrag mit Namen "0" zu finden sein, wie oben gezeigt. Wenn dort mehrere Einträge mit numerischen Namen sind, dann ist mehr als ein USB-Speichergerät angeschlossen, und man muss herausfinden, welcher Eintrag der des Kartenlesers ist. Der einfachste Weg besteht darin, den Kartenleser vom System abzumelden, und dabei die IDs zu beobachten (eventuell ist das Drücken von F5 zum Aktualiseiren der Ansicht erforderlich).

Um die ID zu bekommen, kann man den Eintrag mit einem Doppelklick öffnen, den Wert in die Zwischenablage kopieren, und anschließend 'Esc' drücken oder den Button 'Abbrechen' betätigen.

Registry-Wert

Ermitteln der Firmware-Version

Zum Ermitteln der Firmware-Version muss man die Computerverwaltung starten. Wer allerdings regedit bevorzugt, kann den Hinweis weiter unten lesen. In der Computerverwaltung ist zu folgendem Punkt zu navigieren:
Datenspeicher - Wechselmedien - Bibliotheken

Computerverwaltung, Wechselmedien

Hier sollte für jeden zu einem Wechselmedium gehörenden Laufwerksbuchstaben ein Eintrag zu finden sein. Über das Kontextmenü eines Eintrags (Rechtsklick) ruft man die Eigenschaften ab, und wählt die Registerkarte "Geräteinformationen" aus.

Geräteinformationen

Der Eintrag "Revision" enthält die Firmware-Version des Controllers. Normalerweise sollte für alle Laufwerke eines Kartenlesers die gleiche Version angezeigt werden, es gibt aber vereinzelt Kartenleser, die für jedes Laufwerk eine individuelle Firmware-Version anzeigen. Bei manchen Kartenlesern ist der Revision-Eintrag leer.

Hinweis: Wenn sich der Wert nicht über die Computerverwaltung ermitteln lässt, kann er auch aus der Registry gelesen werden. Im Eintrag
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum
sind ähnlich zum Eintrag USBSTOR\Enum die physikalischen Laufwerke gelistet. Jeder Laufwerksbuchstabe des Kartenlesers taucht hier als Laufwerk auf. Die Einträge beginnen mit "USBSTOR", und haben in der Mitte einen Teil "Rev_xxxx\", wobei xxxx der Firmware-Version entspricht.

Ermitteln der IDs unter Mac OS

Vielen Dank an Gerd M. Hofmann für das Ermitteln der IDs unter Mac OS und die Bereitstellung des Screenshots.

Unter Mac OS muss man im System Profiler "Hardware - USB" selektieren, und im USB-Gerätebaum den Eintrag für den Kartenleser suchen...

Mac OS System Profiler

Die wichtigen Werte sind Hersteller-ID, Produkt-ID und Version.
In diesem Fall haben wir es mit einem smsc USB97C210 mit Firmware 2.16 zu tun.

Was kann man mit der ID anfangen?

Wer einem Aufruf zur Kartenleser-Erfassung in einem Forum gefolgt ist, der sollte bitte die gefragte Information zusammen mit der ermittelten ID als Antwort auf den entsprechenden Beitrag einstellen.

Hersteller- und Produkt-ID können auf der  Controller-Übersicht  gesucht werden. Dann kann in der  Übersicht Kartenleser  nachgeschlagen werden, ob ein Kartenleser mit gleichem Controller getestet wurde. Wenn kein entsprechender Kartenleser gelistet ist, kann in der  Kartenleser-Liste  nachgeschaut werden, ob Information zu diesem Modell bereits übermittelt wurde.


Hans-Jürgen Reggel   ·   http://www.hjreggel.net/cardspeed/   ·   2006-05-03 ~ 2007-05-16