DPC 对象简介

由于 ISR 必须尽快执行,因此驱动程序通常必须将中断维护的完成推迟到 ISR 返回后。 因此,系统支持 延迟过程调用 (DPC) ,这些 DPC 可以从 ISR 排队,并在以后的时间以低于 ISR 的 IRQL 执行。

每个 DPC 都与系统定义的 DPC 对象相关联。 系统为每个设备对象提供一个 DPC 对象。 当驱动程序注册称为 DpcForIsr 例程的 DPC 例程时,系统会初始化此 DPC 对象。 如果需要多个 DPC,驱动程序可以创建其他 DPC 对象。 这些额外的 DPC 称为 CustomDpc 例程。

驱动程序不应直接引用 DPC 对象内容。 未记录对象的结构。 驱动程序无权访问分配给每个设备对象的系统提供的 DPC 对象。 驱动程序为额外的 DPC 分配存储,但这些 DPC 对象的内容只能由系统例程引用。

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