poFxSetComponentLatency 函式 (wdm.h)
PoFxSetComponentLatency 例程會指定在從閑置條件轉換為指定元件作用中條件時可容許的最大延遲。
語法
void PoFxSetComponentLatency(
[in] POHANDLE Handle,
[in] ULONG Component,
[in] ULONGLONG Latency
);
參數
[in] Handle
句柄,表示使用電源管理架構註冊裝置, (PoFx) 。 設備驅動器先前已從 PoFxRegisterDevice 例程收到此句柄。
[in] Component
識別元件的索引。 此參數是裝置驅動程式用來向PoFx註冊裝置之PO_FX_DEVICE結構中 Components 陣列的索引。 如果 Components 陣列包含 N 個元素,元件索引的範圍從 0 到 N–1。
[in] Latency
最大延遲,以 100 奈秒為單位,可在指定的元件中容許。 如需詳細資訊,請參閱<備註>。
傳回值
無
備註
呼叫驅動程式會提供裝置用戶端可以在指定元件中容許的最大延遲。 此延遲是完成從閑置條件轉換為使用中條件所需的時間。 PoFx 會使用此延遲作為改善效能的提示。
當元件從作用中條件切換到閑置條件時,PoFx 會選取適當的低電源 Fx 狀態,讓元件進入。 完成此轉換之後,切換回使用中條件所需的時間取決於選取的 Fx 狀態。 PoFx 會嘗試選取未違反最大延遲需求的 Fx 狀態。
例如,如果驅動程式支援指定元件中的電源狀態 F0、F1 和 F2,F2 狀態代表比 F1 狀態低的電源設定。 一般而言,從 F2 喚醒 (到完全開啟狀態所需的 T2 時間,F0) 比從 F1 喚醒所需的 T1 時間長。 如果最大延遲大於 T1 但小於 T2,則 PoFx 可以安全地將元件切換至 F1 狀態,但仍符合最大延遲需求。 不過,PoFx 會避免將元件切換至 F2 狀態,因為這樣做違反這項需求。
裝置驅動程式可以在每次條件變更需要變更延遲上限時呼叫 PoFxSetComponentLatency 。 每次呼叫之後,新的最大延遲會維持有效狀態,直到驅動程式再次呼叫 PoFxSetComponentLatency 以更新它為止。
如果呼叫 PoFxSetComponentLatency 時元件處於閑置狀態,PoFx 可能會變更元件的目前 Fx 狀態,以容納呼叫端所指定的新最大延遲。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供。 |
目標平台 | Universal |
標頭 | wdm.h |
程式庫 | Ntoskrnl.lib |
Dll | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |