Discussion:
USB Composite Device (Code 38)
(too old to reply)
Carl-Fredrik Neikter
2010-10-05 09:10: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
Asaf Shelly
2010-10-06 20:22:06 UTC
Permalink
Hi,

It is possible that the device driver is keeping the usb driver open.
It is also possible that the device is not disconnecting the pull-up. This
is how the device is supposed to signal that it is no longer connected.

What happens when you physically disconnect the device and plug it in again?

Maybe you can try installing WinUSB as the device driver and see how it
behaves.

You can also write a lower filter to the device driver to listen to what it
is doing and make sure that it is really closing all of its connections.

Regards,
Asaf
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
Asaf Shelly
2010-10-06 20:22:08 UTC
Permalink
Hi,

It is possible that the device driver is keeping the usb driver open.
It is also possible that the device is not disconnecting the pull-up. This
is how the device is supposed to signal that it is no longer connected.

What happens when you physically disconnect the device and plug it in again?

Maybe you can try installing WinUSB as the device driver and see how it
behaves.

You can also write a lower filter to the device driver to listen to what it
is doing and make sure that it is really closing all of its connections.

Regards,
Asaf
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...