[WDF] Add Windows Driver Framework files

Takern from Microsoft GitHub repo:
d9c6040fe9

Licensed under MIT
This commit is contained in:
Victor Perevertkin 2020-09-24 23:51:15 +03:00
parent 545df81502
commit 8a978a179f
No known key found for this signature in database
GPG key ID: C750B7222E9C7830
475 changed files with 285099 additions and 0 deletions

View 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;
}