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 */
|
/* 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 {
|
class SpinLockSharedGuard {
|
||||||
public:
|
public:
|
||||||
SpinLockSharedGuard(PEX_SPIN_LOCK SpinLock) : m_SpinLock(SpinLock) {
|
SpinLockSharedGuard(PEX_SPIN_LOCK SpinLock) : m_SpinLock(SpinLock) {
|
||||||
|
Loading…
Reference in New Issue
Block a user