reactos/ntoskrnl/ke
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
..
amd64 [NTOS:KE/x64] Fix exception information on page faults 2024-09-12 17:07:59 +03:00
arm [NTOS:KE/x86/arm] Use a better boot process affinity value (#6399) 2024-01-24 17:52:56 +01:00
i386 [NTOS:KE/i386] KeStartAllProcessors(): ProcessorCount is a ULONG (#7455) 2024-10-16 22:38:01 +02:00
apc.c [FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces 2021-06-11 15:33:08 +03:00
balmgr.c
bug.c [NTOS:KE] Improve freeze code in KeBugCheckWithTf 2024-04-23 15:50:06 +02:00
clock.c
config.c [NTOS:KE] Both KeFindConfigurationEntry() and KeFindConfigurationNextEntry() functions are exported by NTOSKRNL, so they definitively must NOT be in the discardable INIT section!! 2021-04-10 00:43:52 +02:00
devqueue.c
dpc.c [NTOS:KE] Make KeFlushQueuedDpcs SMP ready 2024-10-20 16:28:11 +03:00
eventobj.c
except.c [NTOS:KE] Improve NtRaiseException and NtContinue 2024-05-01 11:30:29 +02:00
freeze.c [NTOS:KE/x64] Implement processor freeze code 2024-04-23 15:50:06 +02:00
gate.c [NTOS:KE] Rename some locking functions to reflect the IRQL level changes 2019-12-31 15:30:27 +01:00
gmutex.c
ipi.c [NTOS:KE/x64] Implement initial IPI code 2023-12-18 23:16:39 +02:00
krnlinit.c [NTOS:KE] Fix initialization of node block for application processors 2024-01-18 22:41:46 +01:00
mutex.c [NTOS] Consistently use MUTANT_INCREMENT. 2020-10-16 16:09:54 +02:00
procobj.c [NTOS:KE] Fix some locking issues 2021-06-19 12:17:18 +02:00
profobj.c
queue.c [FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces 2021-06-11 15:33:08 +03:00
semphobj.c
spinlock.c [NTOS:KE] Unconditionally check IRQL when acquiring & releasing spinlock at DISPATCH_LEVEL 2021-06-29 11:49:20 +02:00
thrdobj.c [NTOS:KE] Fix some KAFFINITYs 2024-01-16 08:15:53 +01:00
thrdschd.c [NTOS:KE] Fix some KAFFINITYs 2024-01-16 08:15:53 +01:00
time.c [NTOS:KE:X64] Fix KiWriteSystemTime 2020-10-31 14:23:16 +01:00
timerobj.c [NTOS:KE] Fix calculation of timer expiration 2024-04-07 09:14:26 +02:00
wait.c [PSDK][NDK] Use hex to define MIN/MAX constants like in native SDK 2021-07-23 22:03:48 +02:00