USB: Endpoint EP0 für eigene Kommandos nutzen

Gast #1229486
Kann ich den Endpoint (EP0) eines USB-Geräts (hier: Mass Storage Device) 
mit eigenen Kommandos erweitern.

Idee: Der Massenspeicher-Treiber von Windows greift auf das USB-Gerät 
zu. Gleichzeitig möchte ich von einem 2. Programm aus Kommandos an das 
USB-Gerät senden. Ist dies möglich? Oder bin ich auf einem Holzweg?
#1229507
Hm, ich glaube das wird nicht gehen. Der Windows MSD Treiber krallt sich 
ganz bestimmt das Gerät exclusiv, und meines Wissens kann man dann nicht 
über den Control EP noch zugreifen. Aus der gleichen Anwendung heraus 
geht das natürlich, da kann man per Set Feature und Get Feature und 
Vendor Requests noch jede Menge über den Control EP machen.
#1229533
Du kannst innerhalb eines USB-Gerätes mehrere Interfaces mit 
verschiedenen Funktionen definieren.

z.B. neben dem MSD noch ein HID, wie es diese Festplattengehäuse mit 
"Backup-Taster" machen.

dann kriegt jedes Interface seinen eigenen Treiber, und die kommen sich 
nicht in die Quere.
Gast #1229534
Heißt das, daß das USB-Gerät neben dem MSD noch ein 2. Interface 
unterstützen muß (z. B. HID), damit Windows den entsprechenden Treiber 
lädt, den ich dann wiederum von meinem Programm anspreche?

Problem: ich habe nur noch einen Endpoint (EP3) frei und möchte senden 
UND empfangen.
#1229546
Karlheinz wrote:
> Heißt das, daß das USB-Gerät neben dem MSD noch ein 2. Interface
> unterstützen muß (z. B. HID), damit Windows den entsprechenden Treiber
> lädt, den ich dann wiederum von meinem Programm anspreche?

Nein, ist nur eine Möglichkeit, wie's sehr einfach geht. du kannst 
natürlich auch auf die vorhandenen MSD+HID Treiber verzichten, und alles 
in einem eigenen Windows-Treiber machen.

> Problem: ich habe nur noch einen Endpoint (EP3) frei und möchte senden
> UND empfangen.

Das könnte schon reichen. Hab grad kein solches Plattengehäuse da, aber 
ein anderes Gerät, dort ist das zweite Interface auch HID, und das kommt 
mit nur einem Endpoint aus.

der EP0 gilt dann für beide Interfaces gleichzeitig, wie das dann im 
Detail geregelt ist musst du selber nachlesen.
Gast #1229570
>> Nein, ist nur eine Möglichkeit, wie's sehr einfach geht. du kannst
>> natürlich auch auf die vorhandenen MSD+HID Treiber verzichten, und alles
>> in einem eigenen Windows-Treiber machen.

Habe schon genug Probleme, da brauch ich mir Window nicht auch noch 
aufzuhalsen.

Du hast mich auf den richtigen Weg gebracht. Ein paar Sachen habe ich 
schon quergelesen und es sieht so aus, daß ein Endpoint ausreicht.

Vielen Dank für alle Beiträge.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.