From: Andariel on
Hello Hannes,

If you write the driver in WDF, you should check whether
EvtDeviceSurpriseRemoval callback has been invoked when you remove USB WWAN
device accidentially. System does not issue device remove notification until
driver release all resources including memory, NET_BUFFER_LIST(of course, you
are writing NDIS 6.20 driver), and so on.

Or if the driver is implemented in NDIS-WDM manner,
MiniportDevicePnPEventNotify will be invoked and DevicePnPEvent is set to
NdisDevicePnPEventSurpriseRemoved.


"Hannes" wrote:

> Let me also mention that our WWAN/MBN driver is built with WDF (not WDM).
>
> / Hannes.
>
> "Hannes" wrote:
>
> > Hi,
> >
> > We build a USB NDIS 6.20 WWAN device for Windows 7. On certain systems, the
> > device driver takes very long (30 seconds) to unload if it was unplugged
> > while the PC was asleep.
> >
> > Note: The issue ONLY occurs if "Allow the computer to turn off this device
> > to save power" is CHECKED on our networking device driver settings.
> >
> > After 30 seconds, the PC goes "ding-dong" (the hardware unplug sound) and
> > the driver then disappears from Device Manager.
> >
> > If we clear the checkbox mentioned above, the PC goes "ding dong" and the
> > driver unloads *immediately* when the PC resumes from sleep.
> >
> >
> > Steps to reproduce:
> > 1. PC is turned on, USB NDIS 6.20 networking device is plugged in, driver is
> > loaded and visible in Device Manager.
> > 2. Put the PC to sleep.
> > 3. Unplug the USB device.
> > 4. Press the power button to resume from sleep.
> > -30 seconds after resume, the PC goes "ding dong", and the driver is
> > unloaded and hidden from Device Manager
> >
> > We have tested this on many diffrent brands and models, and the issue only
> > occurs on two specific Dell models.
> >
> >
> > Any ideas welcome,
> >
> > / Hannes.