Discussion:
USB Composite Device (Code 38)
(too old to reply)
Carl-Fredrik Neikter
2010-10-05 09:08:03 UTC
Permalink
Hello

We are facing a problem with a device driver to an USB-device. The USB
device is a Cinterion EU3, which is connected to our computer. During certain
circumstances, we need to restart the USB device by the AT^SMSO (Switch Off
Mobile Station) command. We can also control the shutdown of the USB device
by certain control signals (emergency reset).

However, after a shutdown and restart, the USB device is not recognized
correctly in Windows any longer. Windows reports Code 38 ("Windows cannot
load the device driver for this hardware because a previous instance of the
device driver is still in memory"). In other words, the removal (plug off) of
the device seems to be the culprit. The driver(s) cannot unload itself
completely during removal. The driver in question is USB Composite Device
(usbccgp.sys).

The USB Composite Device is a standard Microsoft driver. We have tried to
plug-in, remove and plug-in another composite device (keyboard/mouse) with no
problem at all. So it might also be the case that the dependent Cinterion
driver eu3eusbser.sys have an inherent problem that spreads to the composite
device driver.

Please note that before shut off and removal of the device, we try to close
all possible handles to the device. So this should not be a problem. Also
note that just trying do disable/enable the composite device in Device
Manager also gives the same driver loading problem, i.e. Code 38.

How should we continue the error tracing to pinpoint the problem?

--Carl-Fredrik
Pavel A.
2010-10-05 09:32:55 UTC
Permalink
From your description, the eu3eusbser.sys seems to be the culprit.
Possibly it holds some IRP pending, or something like that.
--pa
Post by Carl-Fredrik Neikter
Hello
We are facing a problem with a device driver to an USB-device. The USB
device is a Cinterion EU3, which is connected to our computer. During certain
circumstances, we need to restart the USB device by the AT^SMSO (Switch Off
Mobile Station) command. We can also control the shutdown of the USB device
by certain control signals (emergency reset).
However, after a shutdown and restart, the USB device is not recognized
correctly in Windows any longer. Windows reports Code 38 ("Windows cannot
load the device driver for this hardware because a previous instance of the
device driver is still in memory"). In other words, the removal (plug off) of
the device seems to be the culprit. The driver(s) cannot unload itself
completely during removal. The driver in question is USB Composite Device
(usbccgp.sys).
The USB Composite Device is a standard Microsoft driver. We have tried to
plug-in, remove and plug-in another composite device (keyboard/mouse) with no
problem at all. So it might also be the case that the dependent Cinterion
driver eu3eusbser.sys have an inherent problem that spreads to the composite
device driver.
Please note that before shut off and removal of the device, we try to close
all possible handles to the device. So this should not be a problem. Also
note that just trying do disable/enable the composite device in Device
Manager also gives the same driver loading problem, i.e. Code 38.
How should we continue the error tracing to pinpoint the problem?
--Carl-Fredrik
Philip Ries [MSFT]
2010-10-05 22:51:23 UTC
Permalink
I've never dealt with a Code 38, but this blog post might help.

"Why doesn't my driver unload?"
http://blogs.msdn.com/b/usbcoreblog/archive/2009/10/06/why-doesn-t-my-driver-unload.aspx

Specifically you could try the debugger commands near the end.
Post by Pavel A.
From your description, the eu3eusbser.sys seems to be the culprit.
Possibly it holds some IRP pending, or something like that.
--pa
Post by Carl-Fredrik Neikter
Hello
We are facing a problem with a device driver to an USB-device. The USB
device is a Cinterion EU3, which is connected to our computer. During certain
circumstances, we need to restart the USB device by the AT^SMSO (Switch Off
Mobile Station) command. We can also control the shutdown of the USB device
by certain control signals (emergency reset).
However, after a shutdown and restart, the USB device is not recognized
correctly in Windows any longer. Windows reports Code 38 ("Windows cannot
load the device driver for this hardware because a previous instance of the
device driver is still in memory"). In other words, the removal (plug off) of
the device seems to be the culprit. The driver(s) cannot unload itself
completely during removal. The driver in question is USB Composite Device
(usbccgp.sys).
The USB Composite Device is a standard Microsoft driver. We have tried to
plug-in, remove and plug-in another composite device (keyboard/mouse) with no
problem at all. So it might also be the case that the dependent Cinterion
driver eu3eusbser.sys have an inherent problem that spreads to the composite
device driver.
Please note that before shut off and removal of the device, we try to close
all possible handles to the device. So this should not be a problem. Also
note that just trying do disable/enable the composite device in Device
Manager also gives the same driver loading problem, i.e. Code 38.
How should we continue the error tracing to pinpoint the problem?
--Carl-Fredrik
Loading...