Hi all,
I wonder if anyone can help?
I have a CDC-ACM compliant device I’m working on which is using the Microsoft supplied driver usbser.sys.
Ok, so far so good.
Now according to the Microsoft USB FAQ (http://www.microsoft.com/whdc/system/bus/USB/USBFAQ_intro.mspx) usbser supports selective suspend for a Modem class of device (which mine is), when there are “no active modem connections”.
And here-in lies my problem. I am assuming that (with no additional vendor supplied driver installed) that usbser would be the power policy owner, and so would send the appropriate Idle Notification Request to the Hub Driver when it detects no active modem connections. But try as I might, I don’t seem to be able to convince usbser that there are no active modem connections!!!
What am I doing wrong?
FYI I have no handles open to my device (or its COM ports) and it is the only device on the USB Hub - an internal one on my PC which is ACPI compliant, and has the “Allow computer to turn off device to save power” box checked.
Any and all suggestions\comments greatfully received!!
Many Thanks
Pete
I think that usbser will just send a d3 irp when the last handle is closed and not a full fledged idle notification request, but I can’t say this for certain. Does device manager say the device is in d3 (in the details tab) when there are no active connections?
d
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@cevolution.co.uk
Sent: Sunday, January 06, 2008 12:31 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Selective Suspend with the Microsoft CDC-ACM Driver Usbser
Hi all,
I wonder if anyone can help?
I have a CDC-ACM compliant device I’m working on which is using the Microsoft supplied driver usbser.sys.
Ok, so far so good.
Now according to the Microsoft USB FAQ (http://www.microsoft.com/whdc/system/bus/USB/USBFAQ_intro.mspx) usbser supports selective suspend for a Modem class of device (which mine is), when there are “no active modem connections”.
And here-in lies my problem. I am assuming that (with no additional vendor supplied driver installed) that usbser would be the power policy owner, and so would send the appropriate Idle Notification Request to the Hub Driver when it detects no active modem connections. But try as I might, I don’t seem to be able to convince usbser that there are no active modem connections!!!
What am I doing wrong?
FYI I have no handles open to my device (or its COM ports) and it is the only device on the USB Hub - an internal one on my PC which is ACPI compliant, and has the “Allow computer to turn off device to save power” box checked.
Any and all suggestions\comments greatfully received!!
Many Thanks
Pete
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
Hi Doron,
Thanks for the reply
Nope, unfortunately not. The device still reports it’s in D0 state, but as far as I can tell (i.e. via Sysinternals ‘Handle’) there are no open handles to the device - so I’m assuming this means no active modem connections’. But maybe this assumption is wrong…?
As I’ve access to the device and the source for the embedded CDC-ACM driver, I’ve compiled the code to toggle a status LEDs on the board when a suspend interrupt is generated. The LED is toggled fine when I suspend (or Hibernate) the PC, and when I remove the device, but while the host is in S0 the device always stays in D0 - i.e. no selective suspend is occuring.
Regards
Pete