Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

USB: VID/PID des Gerätes?

519 views
Skip to first unread message

Roger Schreiter

unread,
Aug 29, 2000, 3:00:00 AM8/29/00
to
Tag,

wenn ich ein USB-Gerät anschließe, dann entscheidet doch,
falls ich das richtig verstanden habe, Windows alleine aufgrund
der VID/PID, welches der richtige Treiber ist.

Ich habe ein selbstgebasteltes USB-Gerät und einen Treiber
mit derselben VID und PID, falls ich keinen Fehler gemach
habe.

Da Windows aber stets den allgemeinen USB-Treiber
meinem vorzieht, vermute ich mal, daß entweder mit der
Geräte-Firmware oder dem Treiber was nicht stimmt. (Vermutlich
ersteres.) Selbst wenn ich dann gewaltsam meinen Treiber
dem Gerät zuordne (was Windows dann akzeptiert), bleibt
das gelbe Ausrufezeichen in "Systemsteuerung->System"
bei meinem Gerät.

Nun würde ich gerne nachprüfen können, welche VID/PID von
meinem Gerät wirklich gesandt wurde. Ich habe daraufhin
die Registry nach meinem Gerät durchwühlt, bei USB und
ENUM aber immer nur den ROOT-HUB und den USB-Controller
gefunden.

Was kann ich daraus schließen?

Gibt es irgendwo eine Möglichkeit, mit großer Sicherheit den
Wert zu finden, den mein Gerät tatsächlich als VID/PID
sanndte?


Danke für Hinweise!

Roger.

Axel Sommerfeldt

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to
Roger Schreiter wrote in message <39ABDBDB...@Spectro21.de>...

>wenn ich ein USB-Gerät anschließe, dann entscheidet doch,
>falls ich das richtig verstanden habe, Windows alleine aufgrund
>der VID/PID, welches der richtige Treiber ist.

Ja genau, zumindest fast (siehe unten).

>Ich habe ein selbstgebasteltes USB-Gerät und einen Treiber
>mit derselben VID und PID, falls ich keinen Fehler gemach
>habe.

Ein Treiber hat keine VID und PID. Die steht lediglich in der zum Treiber
gehörigen INF-Datei. Windows sucht nach dem Stecken von USB nach einer
INF-Datei, wo genau diese VID und PID vermerkt ist. Dieser Treiber wird dann
installiert und in der Registry dieser VID und PID zugeordnet. Im Treiber
selbst ist jedoch keine VID und PID direkt vermerkt. (Er hätte lediglich die
Möglichkeit, die VID und PID selbst zu erfragen.)

>Da Windows aber stets den allgemeinen USB-Treiber
>meinem vorzieht, vermute ich mal, daß entweder mit der
>Geräte-Firmware oder dem Treiber was nicht stimmt.

Es könnte auch sein, daß etwas an den Einträgen in der Registry nicht
stimmt. Suche mal im regedit nach der VID und PID, ich meine unter
KHLM/Enum/Root/USB ist z.B. was zu finden. Wenn du die INF-Datei selber
gebastelt hast könnte natürlich auch diese fehlerhaft sein.

Ansonsten gibt es auch auf www.usb.org Programme, die neben VID und PID auch
viele andere Parameter des USB-Devices anzeigen.

>Nun würde ich gerne nachprüfen können, welche VID/PID von
>meinem Gerät wirklich gesandt wurde. Ich habe daraufhin
>die Registry nach meinem Gerät durchwühlt, bei USB und
>ENUM aber immer nur den ROOT-HUB und den USB-Controller
>gefunden.

Das ist schlecht.

>Was kann ich daraus schließen?

Wenn man ein neues USB-Gerät ansteckt, meldet Windows dies ja als
"unbekanntes Gerät" und fragt den Anwender, wie weiter verfolgt werden soll.
Hier kann man IMHO auch einfach "nicht mehr nachfragen" (oder so ähnlich)
auswählen, dann wird auch in Zukunft kein Treiber für das Gerät gesucht &
installiert. Vielleicht hast du das mal gemacht?

Oder der Treiber mag das Gerät nicht. Wenn der Treiber nicht mitspielt und
bei den passenden PnP-Signalen Fehlercodes zurückliefert, dann wird das
Gerät ebenfalls von Windows nicht akzeptiert. Ist der Treiber von dir? Oder
versuchst du einem vorhandenen Treiber (von einem Fremdhersteller) dein
eigenes Gerät unterzujubeln?

Gruß,
Axel


Roger Schreiter

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to
Axel Sommerfeldt wrote:

> Ein Treiber hat keine VID und PID. Die steht lediglich in der zum Treiber

> gehörigen INF-Datei....

... ich meinte die INF-Datei - sorry!


Tag,

vielen Dank für Deine ausführliche Antwort!


> KHLM/Enum/Root/USB ist z.B. was zu finden.

Hm, jetzt schwant mir was. Ich sehe dort immer ein
Gerät mit VID/PID = 0/0 und dachte, das muß zum
USB-Kontroller gehören - nein, das ist mein Gerät.


> Wenn du die INF-Datei selber
> gebastelt hast könnte natürlich auch diese fehlerhaft sein.

Nö, ich teste gerade mit dem bulkusb-Treiber, der
auf diversen CDs und auch im DDK dabei ist.

Jetzt habe dort mal ebenfalls VID/PID = 0/0 eingetragen
und siehe da, Windows bietet mir den spontan für mein
Gerät an. Jetzt muß ich "nur" noch herausfinden, warum
mein Gerät nicht die VID/PID weitergibt, die ich einprogrammierte,
sonern 0/0.

Aber da hilft sicherlich Dein nächster Tip:

> Ansonsten gibt es auch auf www.usb.org Programme, die neben VID und PID auch
> viele andere Parameter des USB-Devices anzeigen.

> ...

Wäre ja eigentlich naheliegend gewesen, dort mal nach
Tools zu suchen. Manchmal kommt man wohl auf das
Naheliegende nicht. Vielen Dank für den Tip!
Werde nun mal untersuchen, ob noch mehr "falsche" Parameter
aus meinem Gerät kommen, und so vielleicht dem Fehler
auf die Schliche kommen.


Roger.


Axel Sommerfeldt

unread,
Aug 30, 2000, 3:00:00 AM8/30/00
to
Roger Schreiter wrote in message <39AD19C9...@Spectro21.de>...

>> KHLM/Enum/Root/USB ist z.B. was zu finden.
>
>Hm, jetzt schwant mir was. Ich sehe dort immer ein
>Gerät mit VID/PID = 0/0 und dachte, das muß zum
>USB-Kontroller gehören - nein, das ist mein Gerät.

Ja, das kenne ich. Immer wenn unser USB Gerät während der Entwicklung
abgeschmiert war hat Windows es auch anschließend als VID_0000&PID_0000
erkannt :-)

>> Wenn du die INF-Datei selber
>> gebastelt hast könnte natürlich auch diese fehlerhaft sein.
>
>Nö, ich teste gerade mit dem bulkusb-Treiber, der
>auf diversen CDs und auch im DDK dabei ist.

Das hat nichts zu sagen, die INF Datei dort ist auch fehlerhaft :-)
("CopyFiles=BULKUSB.Files.Ext, BULKUSB.Files.Inf" ist eigentlich falsch, die
INF-Datei darf nicht nochmal selber kopiert werden. Also besser nach
"CopyFiles=BULKUSB.Files.Ext" ändern. Zur Überprüfung von INF-Dateien
empfehle ich übrigens tools\chkinf vom W2k DDK.)

Leider ist das die Regel, daß die ganzen Beispiel-INF-Dateien aus dem DDK
(und auch einige aus WINDOWS/INF) ihre Macken haben. Wie will MS von den
Entwicklern verlangen saubere INF-Dateien zu programmieren, wenn sie es
selbst nicht mal können? :-(

Viel Glück bei der Fehlersuche,
Axel


k.ob...@t-online.de

unread,
Aug 31, 2000, 3:00:00 AM8/31/00
to
>wenn ich ein USB-Gerät anschließe, dann entscheidet doch,
>falls ich das richtig verstanden habe, Windows alleine aufgrund
>der VID/PID, welches der richtige Treiber ist.

Ja. Die Infos des Gerätes werden in den Deskriptoren übermittelt.

>Gibt es irgendwo eine Möglichkeit, mit großer Sicherheit den
>Wert zu finden, den mein Gerät tatsächlich als VID/PID
>sanndte?

Ich hatte für die Entwicklung eines USB-Geräts eine Software, die mir
diese Deskriptoren angezeigt hat. Ich weiß nur leider nicht mehr genau
woher. :-)
Wenn ich mich aber richtig entsinne, stammt sie von

http://www.usb.org

Dort müßten sich Analyse-Tools für USB finden lassen.
Wenn nicht -> anmailen!

Gruß, kai


0 new messages