Philippecaille 2006-07-11 14:30:06
I have a specific hardware connected to a PC through an USB to UART
bridge controller (CP2102). Is is not a composite USB device. Its one
and only capability is to bridge an UART.
This chip is provided with two kinds of driver : one that creates a
virtual COM port, and the second one having a companion dll providing a
set of APIs that allow to manage the serial port without passing
through a Windows virtual COM port.
Actually I need to supply to the application level a MIDI virtual port,
and to transform MIDI data stream before sending it to the hardware
through USB, … So I have some questions:
– I do not know anything about the USB client driver… so it would be
very pleasant for me if it is possible to create user mode virtual midi
ports in order to use the dedicated APIs to manage the serial
communication. Can I do that? (I’m afraid that your answer will be NO)
– So, if I have to write a kernel driver, I guess that it would be an
Audio adapter instantiating a MIDI miniport. (I’ve now an idea on how
to do that, thanks BobF 😉 ). But how can I forward a stream to the
USB driver? I need to pass through this driver, or some piece of code
that give me higher level access than talking with URBs…
Any idea? All help would be very appreciated!
Bobf 2006-07-11 14:30:07
The first option I would explore would be to modify the MIDI miniport such
that it makes calls to the USB API in place of the HAL calls it normally
makes. I know, “simple to say” … 🙂
Philippecaille 2006-07-11 14:30:07
Thanks, BobF 🙂 It’s cool to find someone to talk with after a long
day spent in burning my brain… alone in the middle of nowhere :-D….
But seriously now, the APIs provided by the chip manufacturer are
located within a DLL… As far I know, I can’t access them from a
kernel driver… but maybe am I wrong?
Bobf 2006-07-11 14:30:08
I had assumed that the mfr had supplied you some support/tools for
development. I’m not sure what you have available to you – the concept is
what I was trying to convey.