Hardware driver for serial IO => virtual USB device?
I have a device for a serial port connection that is not supported by the manufacturer any more. They stopped support for this device with Windows XP, so it will not work with Windows Vista or Windows 7.
But: They still support similar devices for newer versions of Windows, but those are all USB devices.

Somebody has already coded some stuff into a small hardware device that does the conversion from serial to USB and which itself acts as if it's one of the newer USB devices. Those devices all use more or less the same protocol and the translation that is necessary to make device A work like it's device B are quite easy to implement.

This one a really elegant way to solve this problem, because it's platform independant.

But from a developer's point of view I would like to know the following: Is it possible to write a driver that

a) communicates with the old device connected to the serial port and

b) acts like one of the newer USB devices, i.e. it's only a virtual USB device with VID/PID of the original devices, and

c) translates the data the original manufacturer's driver sends to/receives from the virtual USB device?

And if it is possible, how would one do this?


I should add that I'm not familiar with device driver development. I've searched quite a lot now for something like this but up to now I can't decide if I'm looking in the right direction. It's all so foggy, I can't even see if I'm looking up a mountain or if there is only a small hill in front of me. :-)

My guess is that I don't know the right search phrases, yet. Or that it is impossible to implement and nobody was ever stupid enough to start a project like this. :-)

What I've found are those starting points:

- I use the already existing windows client from USB/IP (http://usbip.sf.net) and implement an emulation of the linux master.
- I will need to implement some kind of virtual USB hub that creates a virtual USB device and that also communicates with the serial device.

Are there other possibilities? Are there easier ways to achieve what I want to do?

Any pointers in the right direction are appreciated. Thank you!
Hardware driver for serial IO => virtual USB device?
===

I have a device for a serial port connection that is not supported by the manufacturer any more. They stopped support for this device with Windows XP, so it will not work with Windows Vista or Windows 7.
But: They still support similar devices for newer versions of Windows, but those are all USB devices.

Somebody has already coded some stuff into a small hardware device that does the conversion from serial to USB and which itself acts as if it's one of the newer USB devices. Those devices all use more or less the same protocol and the translation that is necessary to make device A work like it's device B are quite easy to implement.

This one a really elegant way to solve this problem, because it's platform independant.

But from a developer's point of view I would like to know the following: Is it possible to write a driver that

a) communicates with the old device connected to the serial port and

b) acts like one of the newer USB devices, i.e. it's only a virtual USB device with VID/PID of the original devices, and

c) translates the data the original manufacturer's driver sends to/receives from the virtual USB device?

And if it is possible, how would one do this?


I should add that I'm not familiar with device driver development. I've searched quite a lot now for something like this but up to now I can't decide if I'm looking in the right direction. It's all so foggy, I can't even see if I'm looking up a mountain or if there is only a small hill in front of me. :-)

My guess is that I don't know the right search phrases, yet. Or that it is impossible to implement and nobody was ever stupid enough to start a project like this. :-)

What I've found are those starting points:

- I use the already existing windows client from USB/IP (http://usbip.sf.net) and implement an emulation of the linux master.
- I will need to implement some kind of virtual USB hub that creates a virtual USB device and that also communicates with the serial device.

Are there other possibilities? Are there easier ways to achieve what I want to do?

Any pointers in the right direction are appreciated. Thank you!