Maybe usgccgp supports SS since XP SP1 but in my experience it doesn’t
work. The same composite device which works at Vista RTM and above
including Win7 using the same drivers can be suspended but cannon be
awakened at XP anySP. The only way how to make it working is to disable
SS on all interfaces.
Best regards,
Michal Vodicka
UPEK, Inc.
[xxxxx@upek.com, http://www.upek.com http:</http:>]
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ilias
Tsigkogiannis
Sent: Tuesday, May 04, 2010 12:01 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] unable to wake up from suspend in composite
bus driver
Hi Amit,
Usbccgp supports selective suspend on XPSP1 and newer.
I’m pasting from
http://www.microsoft.com/whdc/connect/usb/USBFAQ_intermed.mspx:
What are the major restrictions imposed by Usbccgp.sys?
The major restrictions imposed on hardware devices and drivers
by Usbccgp.sys are:
* Usbccgp supports only the default configuration, configuration
0.
* Usbccgp does not support Selective Suspend in Windows XP and
Windows Server 2003. This feature is supported only in Windows Vista and
later versions of Windows.
* Note: Usbccgp supports Selective Suspend in Windows XP SP1 and
later versions of Windows XP, but with limited features. For these
versions of Windows, the composite device is put into Selective Suspend
only if each child function of the device has a pending Idle IRP.
Usbccgp does not support Selective Suspend in Windows XP RTM.
By the way, why do you need to write your own composite bus
driver?
Ilias
From: xxxxx@lists.osr.com
[xxxxx@lists.osr.com] on behalf of xxxxx@gmail.com
[xxxxx@gmail.com]
Sent: Friday, April 30, 2010 2:40 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] unable to wake up from suspend in composite bus
driver
Hi all,
I am trying to write a composite bus driver in which i also want
to implement selective suspend and remote wake up functionality. As of
now i could able to put composite driver as well as it’s child pdos to
suspend state but i could not wake them up by external event.
I am not using usbccgp.sys as i want to use this driver for xp.
For implementing selective suspend i have done following things:
1 When i receive IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION ,
initially i am pending it by putting it in queue.
2 i am registering composite fdo for
WdfDeviceAssignS0IdleSettings with IdleUsbSelectiveSuspend power
capability and a small idle time out of 1ms. and
WdfDeviceAssignSxWakeSettings for wake at sx.
3 Immediately after this i am calling WdfDeviceStopidle.
- I have created my own i
IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION and registered idle callback
for that. And sending this irp to down.(usb hub)
5 In the idle callback routine i have called idle callback of
actual IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION which i pended
initially. So child driver is going to suspend immediately after that.
6 After that i have called WdfDeviceresumeidle() to put
composite fdo in idle state.
But after this i could not wake this up. Even drivers are not
getting uninstalled. Even if i open port of child(Modem driver ) through
hyper terminal its not getting opened getting hung at that time.
Can any one give some suggestions regarding this problem.
Amit
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
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