Using KeSynchronizeExecution

Code that references the same objects that the driver's interrupt service routine (ISR) references must be synchronized to avoid simultaneous attempts at referencing the same object. Drivers must use KeSynchronizeExecution to achieve this synchronization. For example, sndblst.sys provides synchronization routines that set up the hardware for either DSP or mixer operations. Then a single ISR is provided to handle interrupts. The synchronization routines provided by sndblst.sys are contained in \src\mmedia\sndblst\driver\hardware.c.