在从低功耗状态启动期间共享处理器资源

当计算机从备用或休眠状态启动 (热启动) ,驱动程序应避免使用处理器资源的时间长于必要的时间。 最重要的是,延迟过程调用 (DPC) 在 IRQL >= DISPATCH_LEVEL 执行的例程和代码应保持最小执行时间。 驱动程序使用 DPC 例程来帮助初始化设备。 驱动程序可能需要在端口微型端口接口协定DISPATCH_LEVEL运行初始化代码。

DPC 例程运行时,会阻止其他优先级较低的线程在同一处理器上运行。 此外,在当前 DPC 完成之前,可能阻止排队并准备好运行的其他 DPC 例程。 若要使其他线程能够快速运行,典型的 DPC 例程的运行时间不应超过 100 微秒。

在系统启动期间运行时间太长的 DPC 例程可能会延迟其他设备的初始化。 此延迟会使设备初始化阶段更长,并延迟操作系统完成启动。

使用以下最佳做法设计 DPC 例程:

  • 单个 DPC 例程的执行时间不应超过 100 微秒。

  • 调用 KeStallExecutionProcessor 例程来延迟执行的 DPC 例程不能指定超过 100 微秒的延迟。

  • 如果任务需要超过 100 微秒且在 DISPATCH_LEVEL 处执行,则 DPC 例程应在 100 微秒后结束,并计划一个或多个 DPC 计时器例程,以在稍后完成该任务。

  • 使用 WDK 中记录的性能分析工具评估 DPC 例程的执行时间。

有关性能分析工具的信息,请参阅测量 Vista 上的系统恢复Windows性能