PoFxSetDeviceIdleTimeout 函式 (wdm.h)
PoFxSetDeviceIdleTimeout 例程會指定當電源管理架構 (PoFx) 呼叫驅動程式的 DevicePowerNotRequiredCallback 例程時,裝置最後一個元件進入閑置條件的最短時間間隔。
語法
void PoFxSetDeviceIdleTimeout(
[in] POHANDLE Handle,
[in] ULONGLONG IdleTimeout
);
參數
[in] Handle
句柄,表示向PoFx註冊裝置。 設備驅動器先前已從 PoFxRegisterDevice 例程收到此句柄。
[in] IdleTimeout
100 奈秒單位的閑置超時時間間隔。 如需詳細資訊,請參閱<備註>。
傳回值
無
備註
此例程會指定將PoFx套用至驅動程式 DevicePowerNotRequiredCallback回 呼例程的未來呼叫的超時時間間隔。 根據預設,此逾時間隔為零,在此情況下,PoFx 可能會呼叫 DevicePowerNotRequiredCallback 例程,只要裝置準備好切換到低電量 Dx 狀態即可。 不過,驅動程式可能會偏好延遲此轉換,並將裝置保持在 D0 電源狀態,以取得一些額外的超時時間間隔。 在此情況下,如果裝置在逾時間隔結束時變成作用中,因此需要保持 D0 狀態,則不再需要擱置的 DevicePowerNotRequiredCallback 呼叫,而且 PoFx 會取消。
例如,為了改善效能並減少耗用,儲存設備驅動器可能會想要防止旋轉的磁碟驅動器進入 D3 並變慢,直到磁碟驅動器閑置的時間夠長。 為了簡化此驅動程式的 DevicePowerNotRequiredCallback 回 呼例程實作, PoFxSetDeviceIdleTimeout 例程可讓驅動程式自動延遲 D3 轉換,而不需要驅動程式設定定時器。
當裝置的所有元件完成其轉換至閑置狀況時,就會開始逾時間隔。 一般而言,PoFx 會等到超時時間間隔結束,以呼叫 DevicePowerNotRequiredCallback 例程。 不過,如果 PoFx 正在準備進入低電源系統狀態,PoFx 可能會提早結束超時時間間隔。 在任何情況下,當 PoFx 呼叫驅動程式的 DevicePowerNotRequiredCallback 例程時,驅動程式應該切換至低電量 Dx 狀態,而不會進一步延遲。
設備驅動器可以在每次條件變更時呼叫 PoFxSetDeviceIdleTimeout ,而需要閑置超時時間間隔的變更。 每次呼叫之後,新的閑置逾時間隔會維持有效狀態,直到驅動程式再次呼叫 PoFxSetDeviceIdleTimeout 以更新它為止。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供。 |
目標平台 | Universal |
標頭 | wdm.h |
程式庫 | Ntoskrnl.lib |
Dll | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |