mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 21:01:54 +00:00
[WDF] Add Windows Driver Framework files
Takern from Microsoft GitHub repo:
d9c6040fe9
Licensed under MIT
This commit is contained in:
parent
545df81502
commit
8a978a179f
475 changed files with 285099 additions and 0 deletions
115
sdk/lib/drivers/wdf/shared/inc/primitives/km/mxlockkm.h
Normal file
115
sdk/lib/drivers/wdf/shared/inc/primitives/km/mxlockkm.h
Normal file
|
@ -0,0 +1,115 @@
|
|||
/*++
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
|
||||
ModuleName:
|
||||
|
||||
MxLockKm.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Kernel mode implementation of lock
|
||||
class defined in MxLock.h
|
||||
|
||||
Author:
|
||||
|
||||
|
||||
|
||||
Revision History:
|
||||
|
||||
|
||||
|
||||
--*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "DbgMacros.h"
|
||||
|
||||
typedef KSPIN_LOCK MdLock;
|
||||
|
||||
#include "MxLock.h"
|
||||
|
||||
__inline
|
||||
MxLock::MxLock(
|
||||
)
|
||||
{
|
||||
CLEAR_DBGFLAG_INITIALIZED;
|
||||
|
||||
MxLock::Initialize();
|
||||
}
|
||||
|
||||
__inline
|
||||
VOID
|
||||
MxLockNoDynam::Initialize(
|
||||
)
|
||||
{
|
||||
KeInitializeSpinLock(&m_Lock);
|
||||
|
||||
SET_DBGFLAG_INITIALIZED;
|
||||
}
|
||||
|
||||
_Acquires_lock_(this->m_Lock)
|
||||
__drv_maxIRQL(DISPATCH_LEVEL)
|
||||
__drv_setsIRQL(DISPATCH_LEVEL)
|
||||
__inline
|
||||
VOID
|
||||
MxLockNoDynam::Acquire(
|
||||
__out __drv_deref(__drv_savesIRQL) KIRQL * OldIrql
|
||||
)
|
||||
{
|
||||
ASSERT_DBGFLAG_INITIALIZED;
|
||||
|
||||
KeAcquireSpinLock(&m_Lock, OldIrql);
|
||||
}
|
||||
|
||||
_Acquires_lock_(this->m_Lock)
|
||||
__drv_requiresIRQL(DISPATCH_LEVEL)
|
||||
__inline
|
||||
VOID
|
||||
MxLockNoDynam::AcquireAtDpcLevel(
|
||||
)
|
||||
{
|
||||
ASSERT_DBGFLAG_INITIALIZED;
|
||||
|
||||
KeAcquireSpinLockAtDpcLevel(&m_Lock);
|
||||
}
|
||||
|
||||
_Releases_lock_(this->m_Lock)
|
||||
__drv_requiresIRQL(DISPATCH_LEVEL)
|
||||
__inline
|
||||
VOID
|
||||
MxLockNoDynam::Release(
|
||||
__drv_restoresIRQL KIRQL NewIrql
|
||||
)
|
||||
{
|
||||
ASSERT_DBGFLAG_INITIALIZED;
|
||||
|
||||
KeReleaseSpinLock(&m_Lock, NewIrql);
|
||||
}
|
||||
|
||||
_Releases_lock_(this->m_Lock)
|
||||
__drv_requiresIRQL(DISPATCH_LEVEL)
|
||||
__inline
|
||||
VOID
|
||||
MxLockNoDynam::ReleaseFromDpcLevel(
|
||||
)
|
||||
{
|
||||
ASSERT_DBGFLAG_INITIALIZED;
|
||||
|
||||
KeReleaseSpinLockFromDpcLevel(&m_Lock);
|
||||
}
|
||||
|
||||
__inline
|
||||
VOID
|
||||
MxLockNoDynam::Uninitialize(
|
||||
)
|
||||
{
|
||||
CLEAR_DBGFLAG_INITIALIZED;
|
||||
}
|
||||
|
||||
__inline
|
||||
MxLock::~MxLock(
|
||||
)
|
||||
{
|
||||
CLEAR_DBGFLAG_INITIALIZED;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue