[NTOSKRNL:CC] Add RAII Wrapper Spinlock Guard
This commit is contained in:
parent
8e73c913ed
commit
5d6f81cb08
@ -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;
|
||||
};
|
Loading…
Reference in New Issue
Block a user