reactos/ntoskrnl
Timo Kreuzer 1d3bce1a59 [NTOS:KE] Make KeFlushQueuedDpcs SMP ready
KeFlushQueuedDpcs is used by some drivers, when unloading or removing a device, to be sure no DPC is still running their code. On a UP system this can be done "inline", on an SMP system, it requires to send an IPI to each processor that has DPCs queued and also synchronize it with the calling thread, which is what KeSetSystemAffinityThread does implicitly: When a queued DPC was detected on a remote processor (implying that processor is currently running at DISPATCH_LEVEL or above), KeSetSystemAffinityThread will schedule the current thread on that processor and send a DPC interrupt. The remote processor will handle that DPC interrupt once it is back below DISPATCH_LEVEL. It will only run the current thread, after all queued DPCs (including threaded DPCs) have finished running.
2024-10-20 16:28:11 +03:00
..
cache
cc
config
dbgk
ex
fsrtl
fstub
inbv
include
io
kd
kd64
kdbg
ke
lpc
mm
ntkrnlmp
ob
po
ps
rtl
se
tests
vdm
vf
wmi
CMakeLists.txt
guid.c
KrnlFun.c
ntdll.S
ntos.cmake
ntoskrnl.rc
ntoskrnl.spec
sysfuncs.lst