Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
907 B

  1. // Gemplus (C) 1999
  2. // Version 1.0
  3. // Author: Sergey Ivanov
  4. // Date of creation - 18.05.1999
  5. // Change log:
  6. //
  7. #ifndef WDM_LOCK_INT
  8. #define WDM_LOCK_INT
  9. #include "generic.h"
  10. #include "lock.h"
  11. #pragma PAGEDCODE
  12. class CWDMLock : public CLock
  13. {
  14. public:
  15. NTSTATUS m_Status;
  16. SAFE_DESTRUCTORS();
  17. virtual VOID dispose(VOID){self_delete();};
  18. protected:
  19. CWDMLock(){m_Status = STATUS_SUCCESS;};
  20. virtual ~CWDMLock(){};
  21. public:
  22. static CLock* create();
  23. virtual VOID initializeSpinLock(PKSPIN_LOCK SpinLock);
  24. virtual VOID acquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL oldIrql);
  25. virtual VOID releaseSpinLock(PKSPIN_LOCK SpinLock, KIRQL oldIrql);
  26. virtual VOID acquireCancelSpinLock(PKIRQL Irql);
  27. virtual VOID releaseCancelSpinLock(KIRQL Irql);
  28. virtual LONG interlockedIncrement(IN PLONG Addend);
  29. virtual LONG interlockedDecrement(IN PLONG Addend);
  30. };
  31. #endif//CWDMLock