ReactOS 0.4.16-dev-91-g764881a
|
#include <fxlock.hpp>
Public Member Functions | |
FxLock (VOID) | |
VOID | Initialize (__in FxObject *ParentObject) |
~FxLock () | |
_When_ (this->m_Verifier==NULL, _Acquires_lock_(this->m_lock)) inline VOID Lock(__out PKIRQL PreviousIrql) | |
_When_ (this->m_Verifier==NULL, _Releases_lock_(this->m_lock)) inline void Unlock(__in KIRQL PreviousIrql) | |
_When_ (this->m_Verifier==NULL, _Acquires_lock_(this->m_lock)) inline VOID LockAtDispatch(VOID) | |
_When_ (this->m_Verifier==NULL, _Releases_lock_(this->m_lock)) inline void UnlockFromDispatch(VOID) | |
Private Attributes | |
MxLock | m_lock |
FxVerifierLock * | m_Verifier |
This is the base lock object implementation
This is intended to be embedded in an FxNonPagedObject rather than forcing a separate allocation for non-verifier mode.
In order to reduce the runtime memory cost of building in verifier support for a retail version, a single pointer it stored to FxVerifierLock if verifier is on. If this pointer is != NULL, lock calls are proxied to this lock function, leaving our internal spinlock redundent.
The decision is to minimize the non-verifier memory footprint so we do not have to compile it out for retail builds, but always have it available through a driver debug setting.
Definition at line 48 of file fxlock.hpp.
|
inline |
Definition at line 57 of file fxlock.hpp.
|
inline |
Definition at line 74 of file fxlock.hpp.
|
inline |
Definition at line 81 of file fxlock.hpp.
|
inline |
Definition at line 117 of file fxlock.hpp.
|
inline |
Definition at line 99 of file fxlock.hpp.
|
inline |
Definition at line 134 of file fxlock.hpp.
Definition at line 29 of file fxlock.cpp.
|
private |
Definition at line 51 of file fxlock.hpp.
|
private |
Definition at line 54 of file fxlock.hpp.
Referenced by _When_(), FxLock(), Initialize(), and ~FxLock().