编写 SynchCritSection 例程

驱动程序将其 SynchCritSection 例程用于以下两个基本目的之一:

为 I/O 操作对设备进行编程

访问共享状态信息

与 ISR 一样, SynchCritSection 例程必须尽快执行,仅执行设置设备寄存器或更新上下文数据所需的操作,然后返回。

由于 KeSynchronizeExecution 在其 SynchCritSection 例程运行时持有设备驱动程序的中断旋转锁,因此在 SynchCritSection 例程返回控制权之前,驱动程序的 ISR 无法执行。

对于任何收到的 IRP,设备驱动程序应在 IRQL PASSIVE_LEVEL在其调度例程 (或可能的设备 专用线程) 处,或在 IRQL DISPATCH_LEVEL StartIo 例程和 DPC 例程中执行尽可能多的 I/O 处理。

有关如何同步关键节的其他信息,请参阅 使用旋转锁:示例