10.1 SynchCritSection Routine Requirements
Any NT device driver with routines that share state, resources, or device ports/registers with its ISR must have a SynchCritSection routine. Most NT device drivers have at least two SynchCritSection routines, and many have more.
A SynchCritSection routine, like an ISR, is run at the SynchronizeIrql level specified when the driver registered its ISR with IoConnectInterrupt.
Running at DIRQL restricts the set of support routines a SynchCritSection routine can call.
For more information about managing IRQLs in NT drivers, see Chapter 16. For specific information about the IRQL(s) at which any particular support routine can be called, see the Kernel-mode Driver Reference.