Files
joaoviictorti acc0e5541b Update code
2025-03-01 23:44:17 -03:00

42 lines
544 B
C++

#pragma once
// From Pavel Yosifovich: Windows Kernel Programming
class FastMutex
{
private:
FAST_MUTEX _mutex;
public:
void Init()
{
ExInitializeFastMutex(&_mutex);
}
void Lock()
{
ExAcquireFastMutex(&_mutex);
}
void Unlock()
{
ExReleaseFastMutex(&_mutex);
}
};
template<typename TLock>
struct AutoLock {
AutoLock(TLock& lock)
: _lock(lock)
{
_lock.Lock();
}
~AutoLock()
{
_lock.Unlock();
}
private:
TLock& _lock;
};