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?
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.
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.
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.
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.
>> 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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.