Hi,
The power policy of my driver is to change timeout on the S0 idle depending on the current driver state. Lets assume, that if the driver knows it will be idle it can to go to Dx faster.
I am using WdfDeviceAssignS0IdleSettings to manipulate Timeout parameter (the IdleTimeoutType is set to DriverManagedIdleTimeout). The flow I am using is as follows (once in D0Entry flow and once while driver is in D0) :
- WdfDeviceAssignS0IdleSettings - set new timeout
- WdfDeviceStopIdle -> WdfDeviceResumeIdle - to restart the timer
Unfortunately, I am running into cases, when after calling WdfDeviceAssignS0IdleSettings old timeout values are used.
Two questions:
- Does WdfDeviceAssignS0IdleSettings need to be called in a specific flow?
- Is WdfDeviceAssignS0IdleSettings resetting the idle timer and WdfDeviceStopIdle -> WdfDeviceResumeIdle is unnecessary?
Sounds overly complicated. Why not have one constant idle timeout that is short and use power manaed queues and a single StopIdle call to hold off idle until you are ready?
WdfDeviceAssignS0IdleSettings assigns the timeout value immediately. The timeout is only started when you are idle, so the stopidle/resumeidle calls are not necessary . If you call WdfDeviceAssignS0IdleSettings when the idle timeout has been started, it will reset the timer.
d
Bent from my phone
From: xxxxx@gmail.commailto:xxxxx
Sent: ?6/?24/?2014 12:10 AM
To: Windows System Software Devs Interest Listmailto:xxxxx
Subject: [ntdev] WdfDeviceAssignS0IdleSettings - when changing timeout takes an effect?
Hi,
The power policy of my driver is to change timeout on the S0 idle depending on the current driver state. Lets assume, that if the driver knows it will be idle it can to go to Dx faster.
I am using WdfDeviceAssignS0IdleSettings to manipulate Timeout parameter (the IdleTimeoutType is set to DriverManagedIdleTimeout). The flow I am using is as follows (once in D0Entry flow and once while driver is in D0) :
1. WdfDeviceAssignS0IdleSettings - set new timeout
2. WdfDeviceStopIdle -> WdfDeviceResumeIdle - to restart the timer
Unfortunately, I am running into cases, when after calling WdfDeviceAssignS0IdleSettings old timeout values are used.
Two questions:
1. Does WdfDeviceAssignS0IdleSettings need to be called in a specific flow?
2. Is WdfDeviceAssignS0IdleSettings resetting the idle timer and WdfDeviceStopIdle -> WdfDeviceResumeIdle is unnecessary?
—
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
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</mailto:xxxxx></mailto:xxxxx>