Questions about usbser.sys

  • Thread starter Valentin Tihomirov
  • Start date
V

Valentin Tihomirov

There are several standard USB classes existing. Each class should have a
supporting driver on each platform. I develope a communication
single-channel full-duplex device and I'm going to use standard platform
drivers. It does not perform any modulation/demodulation (not a modem) but
my device forwards data and therefore is a communication device. Advanced
developers recommend specify my device as Abstract Communication Model (ACM)
device and use usbser.sys. Here is the reference
http://www.lvr.com/usbfaq.htm. I have followed this faq and my device is
succesfully recognized as a virtual COM port in Win2000. But it workes with
troubles and I cannot find any supporting info from Microsoft about their
driver. I will be happy if anybody clarifies the following points.

1. Where can I find info summarizing USB classes supported by Windows and
describing the drivers implementing the support of standard USB classes and
referenced?


2. Where is a page describing Windows support of USB Communication Device
Class (CDC) and drivers for each subclass?
2.1. If the CDC is supported, is there a good reference on how to build the
descriptors for ?
2.2. How many drivers supporing CDC does Windows have? Is the usbser.sys
only driver supporting ACM? If so, why not to install it by default for all
ACM
devices? I mean, one can insert USB memory stick into USB port and gets
additional removable disk without driver installation wizards/procedures;
the same
can be done for ACM devices. You know that USB devices have a class
identifier intended for this purpose, i.e. to allow for automatic detection
of
class driver to load.
2.3. I see the USBSER.SYS driver on XP, 2K, CE4.0 at least, but can't find
any documentation so far. Is usbser.sys just a undocumented/unsupported
creature? If not, where can I get supporting info?
2.4. I have .inf file installing usbser.sys to Win2000; it does not out to
work in WinXP. How can I bind my device with the driver in WinXP?


3. There is a serious problem with usbser.sys. I cannot remove device when
has opened a connection with it. Connection to un-plugged device should be
immediately closed. Otherwise, if an app leaves the it open and user
re-plugs the device back, USB device is re-enumerated, usbser.sys is
re-loaded attempting to assert the same virtual port link name (say, COM8)
to the device. As there is already one COM8 in the system with a connection
opened to it, a conflict occures and this new virtual port gets disabled.
Once disabled, closing the handle does not help to enable locked COM port;
PC should be restarted. This is not good for device required to work 24h.

4. Another problem occures attempting to attach two identical USB devices.
Usbser.sys asserts a virtual COM port to the first pluged USB modem only.
WDM asks restarting PC when I plug one more device but after the restart
device is still not available and WDM reports "This device cannot work
properly until you restart your computer. (Code 14)". In other words, WDM
recommends infinite restarting of PC when there are two identical USB modems
attached.
 

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

Top