36 lines
872 B
C
36 lines
872 B
C
|
// Gemplus (C) 1999
|
||
|
// Version 1.0
|
||
|
// Author: Sergey Ivanov
|
||
|
// Date of creation - 18.05.1999
|
||
|
// Change log:
|
||
|
//
|
||
|
#ifndef WDM_LOCK_INT
|
||
|
#define WDM_LOCK_INT
|
||
|
#include "generic.h"
|
||
|
#include "lock.h"
|
||
|
|
||
|
#pragma PAGEDCODE
|
||
|
class CWDMLock : public CLock
|
||
|
{
|
||
|
public:
|
||
|
NTSTATUS m_Status;
|
||
|
SAFE_DESTRUCTORS();
|
||
|
virtual VOID dispose(VOID){self_delete();};
|
||
|
protected:
|
||
|
CWDMLock(){m_Status = STATUS_SUCCESS;};
|
||
|
virtual ~CWDMLock(){};
|
||
|
public:
|
||
|
static CLock* create();
|
||
|
|
||
|
virtual VOID initializeSpinLock(PKSPIN_LOCK SpinLock);
|
||
|
virtual VOID acquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL oldIrql);
|
||
|
virtual VOID releaseSpinLock(PKSPIN_LOCK SpinLock, KIRQL oldIrql);
|
||
|
virtual VOID acquireCancelSpinLock(PKIRQL Irql);
|
||
|
virtual VOID releaseCancelSpinLock(KIRQL Irql);
|
||
|
virtual LONG interlockedIncrement(IN PLONG Addend);
|
||
|
virtual LONG interlockedDecrement(IN PLONG Addend);
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif//CWDMLock
|