USB Treiberprogrammierung im User Mode ?
Verfasst: 01.08.2008 14:33
Hallo,
ich habe ein USB Gerät gebaut, welches ich als "USB zu MIDI" Gerät für die Steuerung von z.B. Synthesizern verwenden will.
Leider unterstützt der Windows Treiber "usbaudio.sys" erst ab WinXP MIDI Funktionen - unter Win2000SP4 stürzt der Rechner während der Enumeration ab, obwohl ich mich an die "USB Device Class Definition for MIDI Devices" gehalten habe.
Da ich auch ältere Systeme unterstützen möchte ( Win98/Me/2000 ), benötige ich einen eigenen Treiber - diese Thematik ist mir aber noch völlig fremd. Allerdings fand ich heraus, daß für diese Aufgabe ein Treiber im Kernelmodus unnötig ist, welcher ja sowieso nur mit C++ zu programmieren ist.
Jetzt zu meiner eigentlichen Frage:
Ist es möglich, mit PB einen DLL Usermode Treiber zu programmieren, welcher über die API Funktionen ein virtuelles MIDI Gerät im System erzeugt und einbindet, die Daten vom USB Host abholt und sie an das erzeugte MIDI Gerät weiterleitet, so das jede MIDI Software über die API MIDI Funktionen diese Daten als normale MIDI Daten nutzen kann?
Und wenn ja, welche API Funktionen können dieses virtuelle MIDI erzeugen und einbinden ?
Vielen Dank im voraus
Holger
ich habe ein USB Gerät gebaut, welches ich als "USB zu MIDI" Gerät für die Steuerung von z.B. Synthesizern verwenden will.
Leider unterstützt der Windows Treiber "usbaudio.sys" erst ab WinXP MIDI Funktionen - unter Win2000SP4 stürzt der Rechner während der Enumeration ab, obwohl ich mich an die "USB Device Class Definition for MIDI Devices" gehalten habe.
Da ich auch ältere Systeme unterstützen möchte ( Win98/Me/2000 ), benötige ich einen eigenen Treiber - diese Thematik ist mir aber noch völlig fremd. Allerdings fand ich heraus, daß für diese Aufgabe ein Treiber im Kernelmodus unnötig ist, welcher ja sowieso nur mit C++ zu programmieren ist.
Jetzt zu meiner eigentlichen Frage:
Ist es möglich, mit PB einen DLL Usermode Treiber zu programmieren, welcher über die API Funktionen ein virtuelles MIDI Gerät im System erzeugt und einbindet, die Daten vom USB Host abholt und sie an das erzeugte MIDI Gerät weiterleitet, so das jede MIDI Software über die API MIDI Funktionen diese Daten als normale MIDI Daten nutzen kann?
Und wenn ja, welche API Funktionen können dieses virtuelle MIDI erzeugen und einbinden ?
Vielen Dank im voraus
Holger