clean up and standardize types across the codebase, unify atomic operations, improve UTF-8 handling throughout the system, remove obsolete input and named queue interfaces, redesign process preparation and creation, tighten IPC and service boundaries, improve error handling and reliability, minor documentation cleanup, fix doom surfaces, fix panic in ini parsing.
This commit is contained in:
1 parent
899225f551
commit
c0ad63c27f
226 files changed
+6562
-4147
No files matched your search
@@ -1,5 +1,7 @@
|
||||
// Deferred procedure call infrastructure. This file owns DPC queuing and execution outside hard IRQ context.
|
||||
|
||||
#include <ntlite/atomic.h>
|
||||
#include <stdbool.h>
|
||||
#include <kernel/ke_dpc.h>
|
||||
#include <kernel/ke_list.h>
|
||||
#include <kernel/ke_irql.h>
|
||||
@@ -8,8 +10,8 @@
|
||||
|
||||
static LIST_ENTRY gDpcQueue;
|
||||
static SPINLOCK gDpcLock;
|
||||
static volatile long gDpcInitialized = 0;
|
||||
static volatile long gDpcActive = 0;
|
||||
static volatile int32_t gDpcInitialized = 0;
|
||||
static volatile int32_t gDpcActive = 0;
|
||||
|
||||
// Initializes dpc System.
|
||||
void KeInitializeDpcSystem(void) {
|
||||
@@ -52,7 +54,7 @@ __declspec(dllexport) bool KeInsertQueueDpc(KDPC* dpc,
|
||||
|
||||
// Coalesce repeated inserts of the same KDPC. The first insert owns the
|
||||
// argument pair until the DPC is popped by the dispatcher.
|
||||
if (_InterlockedCompareExchange(&dpc->Inserted, 1, 0) != 0)
|
||||
if (NtlAtomicCompareExchange32(&dpc->Inserted, 1, 0) != 0)
|
||||
return false;
|
||||
|
||||
dpc->SystemArgument1 = systemArgument1;
|
||||
@@ -74,7 +76,7 @@ void KiDrainDpcQueue(void) {
|
||||
if (KeGetCurrentIrql() > DISPATCH_LEVEL)
|
||||
return;
|
||||
|
||||
if (_InterlockedCompareExchange(&gDpcActive, 1, 0) != 0)
|
||||
if (NtlAtomicCompareExchange32(&gDpcActive, 1, 0) != 0)
|
||||
return;
|
||||
|
||||
KIRQL oldIrql = KeGetCurrentIrql();
|
||||
|
||||
Reference in new issue
Block a user