⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntuser.h

📁 winNT技术操作系统,国外开放的原代码和LIUX一样
💻 H
字号:
#ifndef _WIN32K_NTUSER_H
#define _WIN32K_NTUSER_H


extern char* _file;
extern DWORD _line;
extern DWORD _locked;

extern FAST_MUTEX UserLock;

#define DECLARE_RETURN(type) type _ret_
#define RETURN(value) { _ret_ = value; goto _cleanup_; }
#define CLEANUP /*unreachable*/ ASSERT(FALSE); _cleanup_
#define END_CLEANUP return _ret_;


#define UserEnterCo() UserEnterExclusive()
#define UserLeaveCo() UserLeave()

#define UserEnterShared() UserEnterExclusive()

#define UserEnterExclusive() \
{ \
  /* DPRINT1("try xlock, %s, %i (%i)\n",__FILE__,__LINE__, _locked);*/ \
   if (UserLock.Owner == KeGetCurrentThread()){ \
      DPRINT1("file %s, line %i\n",_file, _line); \
      ASSERT(FALSE); \
   }  \
   UUserEnterExclusive(); \
   ASSERT(InterlockedIncrement((PLONG)(&_locked)) == 1 /*> 0*/); \
   _file = __FILE__; _line = __LINE__; \
  /* DPRINT("got lock, %s, %i (%i)\n",__FILE__,__LINE__, _locked);*/ \
}

#define UserLeave() \
{ \
   ASSERT(InterlockedDecrement((PLONG)(&_locked)) == 0/*>= 0*/); \
   /*DPRINT("unlock, %s, %i (%i)\n",__FILE__,__LINE__, _locked);*/ \
   if (UserLock.Owner != KeGetCurrentThread()) { \
     DPRINT1("file %s, line %i\n",_file, _line); \
     ASSERT(FALSE); \
   } \
   _file = __FILE__; _line = __LINE__; \
   UUserLeave(); \
}
 


NTSTATUS FASTCALL InitUserImpl(VOID);
VOID FASTCALL UninitUser(VOID);
VOID FASTCALL UUserEnterShared(VOID);
VOID FASTCALL UUserEnterExclusive(VOID);
VOID FASTCALL UUserLeave(VOID);
BOOL FASTCALL UserIsEntered();



#endif /* _WIN32K_NTUSER_H */

/* EOF */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -