RAII:: Added Spinlock Guard,
This commit is contained in:
parent
438ce9293c
commit
ac5f558605
@ -51,6 +51,30 @@ IsGoToNextMap(IN PSHARED_CACHE_MAP SharedMap, IN ULONG TargetPages)
|
||||
}
|
||||
|
||||
/* Later Move it to XDK */
|
||||
class SpinLockGuard
|
||||
{
|
||||
public:
|
||||
|
||||
SpinLockGuard(KSPIN_LOCK_QUEUE_NUMBER QueueNumber)
|
||||
: m_queueNumber(QueueNumber)
|
||||
{
|
||||
m_currentIrql = KeAcquireQueuedSpinLock(m_queueNumber);
|
||||
}
|
||||
|
||||
|
||||
~SpinLockGuard()
|
||||
{
|
||||
KeReleaseQueuedSpinLock(m_queueNumber, m_currentIrql);
|
||||
}
|
||||
|
||||
SpinLockGuard(const SpinLockGuard&) = delete;
|
||||
SpinLockGuard& operator=(const SpinLockGuard&) = delete;
|
||||
|
||||
private:
|
||||
KSPIN_LOCK_QUEUE_NUMBER m_queueNumber;
|
||||
KIRQL m_currentIrql;
|
||||
};
|
||||
|
||||
class SpinLockSharedGuard {
|
||||
public:
|
||||
SpinLockSharedGuard(PEX_SPIN_LOCK SpinLock) : m_SpinLock(SpinLock) {
|
||||
|
Loading…
Reference in New Issue
Block a user