DPC 简介

具有 ISR 的任何驱动程序通常也至少有一个 DpcForIsrCustomDpc 例程,以完成中断驱动的 I/O 操作的处理。 典型的最低级别驱动程序的 DpcForIsrCustomDpc 例程执行以下操作:

  • 完成处理 ISR 开始处理的 I/O 操作。

  • 取消下一个 IRP 的排队,以便驱动程序可以开始处理它。

  • 如果可能,则完成当前 IRP。

有时无法完成当前 IRP,因为需要多次数据传输,或者检测到可恢复的错误。 在这些情况下, DpcForIsrCustomDpc 例程通常会重新编程设备,以便进行另一次传输或最后一次操作的重试。

DpcForIsrCustomDpc 例程在 IRQL DISPATCH_LEVEL的任意 DPC 上下文中调用。 在 DISPATCH_LEVEL 运行会限制 DpcForIsrCustomDpc 例程可以调用的支持例程集。 有关详细信息 ,请参阅管理硬件优先级

DPC 对象和 DPC 还可以与计时器一起使用。 有关详细信息,请参阅 计时器对象和 DPC