2025-04-27 07:49:33 -04:00

36 lines
1.3 KiB
C++

#include "drmkPCH.h"
#include "KGlobs.h"
//-----------------------------------------------------------------------------
KCritMgr::KCritMgr(){
myMutex=(PKMUTEX)ExAllocatePoolWithTag(NonPagedPool, sizeof(KMUTEX), 'kmrD');
if(myMutex==NULL){
allocatedOK=false;
_DbgPrintF(DEBUGLVL_VERBOSE,("Allocation failed in KCritMgr"));
return;
} else {
allocatedOK=true;
};
KeInitializeMutex(myMutex, 0);
return;
};
//-----------------------------------------------------------------------------
KCritMgr::~KCritMgr(){
if(myMutex!=NULL)ExFreePool(myMutex);
return;
};
//-----------------------------------------------------------------------------
KCritical::KCritical(const KCritMgr& critMgr){
hisMutex =critMgr.myMutex;
NTSTATUS stat=KeWaitForMutexObject(hisMutex, Executive, KernelMode, FALSE, NULL);
};
//-----------------------------------------------------------------------------
KCritical::~KCritical(){
KeReleaseMutex(hisMutex, FALSE);
};
//-----------------------------------------------------------------------------
void * _cdecl operator new(size_t S){
return ExAllocatePoolWithTag(PagedPool, S, 'kmrD');
};
//-----------------------------------------------------------------------------