從Low-Power狀態啟動期間共用處理器資源
當電腦從待命或休眠狀態啟動 (暖啟動) 時,驅動程式應該避免使用處理器資源超過必要時間。 最重要的是,延後程序呼叫 (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 常式的執行時間。