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开始可用。
目标平台 通用
标头 wdm.h
Library Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

另请参阅

PO_FX_DEVICE

PoFxRegisterDevice