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

另請參閱

DevicePowerNotRequiredCallback

PoFxRegisterDevice