[NTOSKRNL:CC] Add RAII Wrapper Spinlock Guard

This commit is contained in:
Dibyamartanda Samanta 2024-05-24 10:28:15 +02:00
parent 8e73c913ed
commit 5d6f81cb08

View File

@ -48,4 +48,23 @@ IsGoToNextMap(IN PSHARED_CACHE_MAP SharedMap, IN ULONG TargetPages)
}
return FALSE;
}
}
/* Later Move it to XDK */
class SpinLockSharedGuard {
public:
SpinLockSharedGuard(PEX_SPIN_LOCK SpinLock) : m_SpinLock(SpinLock) {
m_OldIrql = ExAcquireSpinLockShared(m_SpinLock);
}
~SpinLockSharedGuard() {
ExReleaseSpinLockShared(m_SpinLock, m_OldIrql);
}
SpinLockSharedGuard(const SpinLockSharedGuard&) = delete;
SpinLockSharedGuard& operator=(const SpinLockSharedGuard&) = delete;
private:
PEX_SPIN_LOCK m_SpinLock;
KIRQL m_OldIrql;
};