Usbser.sys CDC Virtual COM Port


Greg Inman


I have an interesting question regarding the use of the usbser.sys built in
windows driver... I have implemented a USB CDC driver in some hardware that
I am developing hoping not to have to change Win32 applications that
currently talk to the device using an RS-232 COM Port.

I have generated a .inf file for windows XP and it installs the usbser.sys
driver correctly and it works! The Win32 apps can happily send and receive
data over USB from the device as if it was connected to an RS-232 COM port.

My problem is that the device will not remain in the device manager when
disconnected. It is of course very reasonable that when you unplug a USB
device it is removed from the device manager, however, RS-232 ports are
always available! This causes problems in the Win32 apps that are using the
port as they have to be re-started (or they at least have to re-connect to
the port) each time the device is reconnected to the PC. I wouldn't be
surprised if there is no solution to this but I was wondering if anyone had
any ideas of how to get round it? Of course, I am hoping not to have to
change the implementation of the Win32 apps as that was the whole point of
implementing USB as a virtual COM port.

Any suggestions would be most welcome!




Doron Holan [MS]

there is no way to change this. COM1 and COM2 can also disappear by removal
(esp on a laptop b/c they are in a hw dock) or by disalbing them in device


Greg Inman

Thanks for the response Doron... I suspected as much.

I guess I'll just have to implement USB properly!




Greg Inman

Just to follow this up...

We have here a third party USB->8-port expander device, ie. provides 8
RS-232 COM ports on a single USB connection to the pc. This manages the
problem of dissapearing virtual COM ports very effectively.

I can connect a Win32 App to one of the virtual COM ports, see it work,
completely unplug the expander device from the USB (not just at the COM port)
and see that the app can no longer communicate with the device. After
plugging the USB device back in to the PC the software app is able to
communicate with the device as before without any need to re-start or
re-create the COM port in windows.

When disconnected the virtual com ports do disapear from device manager,
however. So it must be that the windows logical side of that device is able
to re-attach to the COM port when it comes back after being re-connected.

The device is of course using it's own custom driver not the usbser.sys but
I just thought it might be of interest that it appears perfectly possible to
maintain the virtual COM port in windows even though the device has been
removed from the USB bus.


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question