由於ISR必須儘快執行,因此驅動程式通常必須延後完成處理中斷,直到ISR傳回之後。 因此,系統支援 延遲程序呼叫(DPC),這些呼叫可以從 ISR 排入佇列,並在稍後的時間和比 ISR 更低的 IRQL 執行。
每個 DPC 都會與系統定義的 DPC 物件相關聯。 系統會為每個裝置物件提供一個 DPC 物件。 當驅動程式註冊稱為 DpcForIsr 例程的 DPC 例程時,系統會初始化這個 DPC 物件。 如果需要多個 DPC,驅動程式可以建立額外的 DPC 物件。 這些額外的 DPC 稱為 CustomDpc 例程。
驅動程式不應直接參考 DPC 物件內容。 物件的結構未被記載。 驅動程式無法存取指派給每個裝置對象的系統提供的 DPC 物件。 驅動程式會配置額外 DPC 的記憶體,但這些 DPC 物件的內容只能由系統例程參考。
DPC 物件和 DPC 例程也可以與定時器搭配使用。 如需詳細資訊,請參閱 Timer Objects 和 DPC。