Add RAII guard for kernel guarded regions
Tous les contrôles ont réussi
Builds / ExectOS (amd64, debug) (push) Successful in 42s
Builds / ExectOS (amd64, release) (push) Successful in 41s
Builds / ExectOS (i686, debug) (push) Successful in 36s
Builds / ExectOS (i686, release) (push) Successful in 37s

Cette révision appartient à :
2026-08-06 16:07:17 +02:00
Parent 7e66630c1b
révision 577621e082

Voir le fichier

@@ -53,6 +53,40 @@ namespace KE
CriticalRegionGuard& operator=(const CriticalRegionGuard&) = delete;
};
class GuardedRegionGuard
{
private:
BOOLEAN Owned;
PKTHREAD SystemThread;
public:
GuardedRegionGuard(IN PKTHREAD Thread = NULLPTR,
IN BOOLEAN Acquire = TRUE)
{
Owned = Acquire;
SystemThread = Thread;
if(Owned)
{
if(!SystemThread)
{
SystemThread = KE::Processor::GetCurrentThread();
}
KE::KThread::EnterGuardedRegion(SystemThread);
}
}
~GuardedRegionGuard()
{
if(Owned)
{
KE::KThread::LeaveGuardedRegion(SystemThread);
}
}
GuardedRegionGuard(const GuardedRegionGuard&) = delete;
GuardedRegionGuard& operator=(const GuardedRegionGuard&) = delete;
};
class PushLockExclusiveGuard
{
private: